Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo resolver los errores que produce wp_redirect y hacer una redirección de página en WordPress

Imago voragine.net

wp_redirect() es una función de WordPress que permite redirigir a un usuario que visita una página. Se suele usar para redirigir tras enviar información mediante un formulario. Basta con indicar mediante un parámetro la dirección URI a la que se quiere redirigir. Pero suele dar problemas, entre ellos el más común es obtener, en lugar de la página de destino, una en blanco o un error que dice que la cabecera ya se ha cargado y no se puede hacer la redirección.

Para evitarlo hay que incluir en la página desde la que queramos redireccionar dos directivas, la primera al principio de la página, antes de la función get_header(); la segunda al final, tras get_footer():

<?php ob_start();
get_header();

// la página

get_footer();
ob_end_flush(); ?>

Antes de llegar a esta solución he probado otras, que no me han funcionado, pero quizás en otros casos sí lo hagan:

Más información en los infinitos foros de WordPress.

5 comentarios

    • Por Carlos •

    Me estaba volviendo mono con este problema… Gracias por el tip! Funciona para 3.1

    • Por Marc •

    uoo perfecto compañero, estube buscando soluciones y la tuya va perfecto!! un saludoo :)

    • Por rafael •

    Hola
    me parece interesante la solución que propones pero al aplicarla no me carga la pagina y al final me dice que la pagina se ha redirigido varias veces. ¿sabes porque?

    Saludos
    Rafael Albino

    1. Hola rafael, tendría que ver el código para saber dónde está el problema. Quizás lo que ocurre es que estás redirigiendo a la misma página en la que tienes wp_redirect() y eso produce un loop de redirecciones. Después de la orden wp_redirect() recuerda añadir el comando exit.

    • Por Rafael •

    Hola nuevamente, ya lo resolvi el problema de «redirección de varias veces» es que tenia mas abajo otra llamada a wp_redirect(); funciono ahora sin problemas. Gracias.

Dejar un comentario

*
*

 

No hay trackbacks