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:
- WordPress and wp_redirect() function problem
- WordPress Call To Undefined Function get_currentuserinfo() PHP Error
Más información en los infinitos foros de WordPress.
5 comentarios
Me estaba volviendo mono con este problema… Gracias por el tip! Funciona para 3.1
uoo perfecto compañero, estube buscando soluciones y la tuya va perfecto!! un saludoo :)
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
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.
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.