WP_redirect no funciona (el encabezado ya se envió en pluggable.php)

1 minuto de lectura

Quiero usar este código en un archivo de plantilla:

if ( wp_is_mobile() ) {
wp_redirect( "/shop-mobile", $status );
}

pero dice: encabezado ya enviado por /filewithcode en …/wp_includes/pluggable.php en la línea 1196

Traté de limpiar el documento conectable de los espacios… ¿qué más podría ser el problema aquí? Gracias

  • Sé que esto se preguntó hace 6 años, pero me topé con esto. Probablemente debería usar un diseño web receptivo en lugar de /shop-mobile

    – Michael J. Roberts

    13 de julio de 2021 a las 13:47

avatar de usuario de evexoio
evexoio

“Para solucionar el problema de los “encabezados ya enviados”, debe mover todo el procesamiento de su formulario desde la parte inferior de la página hasta la parte superior de la página. Si necesita llamar a wp_redirect(), debe hacer esa llamada antes de imprimir cualquier cosa. – HTML o cualquier otra cosa – a la página”.

referencia:
https://wordpress.stackexchange.com/questions/81566/wp-redirect-headers-already-sent-after-front-end-submission-form

Puedes leer esto para obtener más explicaciones sobre este problema.

Cómo corregir el error “Encabezados ya enviados” en PHP

  • ¡Gracias! muy sencillo

    – tiadotdev

    25 de noviembre a las 17:08

Avatar de usuario del dominio
Dominio

Asegúrese de que el código sobre la función wp_redirect aún no haya enviado la información del encabezado al servidor.

La información del encabezado se enviará al servidor en algunos de los siguientes escenarios:

  1. imprimir, hacer eco

  2. Espacio antes <?php or space after ?>

Compruebe si los encabezados ya se están enviando usando:

if (headers_sent()) {
     die("Redirect failed. Please click on this link: <a href=...>");
}
else{
     exit(header("Location:/test.php"));
}

Consulte el siguiente enlace para obtener más orientación. Cómo corregir el error “Encabezados ya enviados” en PHP

¿Ha sido útil esta solución?