Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo evitar el error “Cannot modify header information – headers already sent” cuando se usa wp_redirect en WordPress

Imago voragine.net
[actualizado el ]

Si se quiere redirigir a otra página en WordPress usando wp_redirect() suele ocurrir que no hay efecto alguno, que no se produce la redirección al incluir esta función en el archivo functions.php o en una plantilla de un tema.

WordPress devuelve un error del tipo “Cannot modify header information – headers already sent”.

Cuentan en Stackoverflow que este error se puede evitar y conseguir que funcione la redirección incluyendo el siguiente código en el archivo functions.php del tema o en el plugin que se esté desarrollando:

Esta solución tiene como efecto colateral un mayor consumo de memoria y un mayor tiempo de carga de las páginas del sitio web, según comentan en Stackoverflow.

Se pueden minimizar los efectos de ob_start() si lo cargamos únicamente donde se necesite. Para ello podemos usar las funciones condicionales de WordPress y cambiar el hook en el que ejecutar la función:

wp_safe_redirect() en lugar de wp_redirect()

Si las redirecciones son hacia páginas del propio sitio web es recomendable usar wp_safe_redirect(). wp_redirect() únicamente debe ser usado para redirigir fuera del sitio web.

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks