La función wp_redirect () no funciona
7 respuestas
- votos
-
- 2012-03-21
Dos cosasestánmal aquí:
- No utilice
$post->guid
como URL - Debe
exit()
después de usarwp_redirect()
( verel Codex )wp_redirect()
no sale automáticamente y casi siempre debeir seguido deexit.
//..... code as in question $post_id = wp_insert_post($new_post); $url = get_permalink( $post_id ); wp_redirect($url); exit();
Two things wrong here:
- Don't use
$post->guid
as an url - You must
exit()
after usingwp_redirect()
(see the Codex)wp_redirect()
does not exit automatically and should almost always be followed by exit.
//..... code as in question $post_id = wp_insert_post($new_post); $url = get_permalink( $post_id ); wp_redirect($url); exit();
-
Ganarlepor 30 segundos: DBeat you by 30 seconds :D
- 0
- 2012-03-21
- soulseekah
-
estonofunciona,siejecuto la consola de lapágina,muestra 302 Encontrado 479ms jquery ... r=1.7.1 (línea 4) OBTENGA http://localhost/wordpress/newpages-17/ 200 OK 1.2s cargando ..........this is not working, if i run the page console show 302 Found 479ms jquery...r=1.7.1 (line 4) GET http://localhost/wordpress/newpages-17/ 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
Esoes unerror de JS.Nada que ver con `wp_redirect`.La respuesta anteriores laforma correcta de hacerlo,por lo que debeestar haciendo algomásmal.Thats a JS error. Nothing to do with `wp_redirect`. The above answer is the correct way to do it, so you must be doing something else wrong.
- 2
- 2012-03-21
- Stephen Harris
-
sorry.it solomuestra GET localhost/wordpress/newpages-17200 OK 1.2s loading ...sorry.it show only GET localhost/wordpress/newpages-17 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
@StephenHarris,¿leimportaría revisarmi pregunta de redireccionamientoen http://wordpress.stackexchange.com/q/76991/10413 Tambiénprobé su código deesta respuesta usando $pidperotodavíanopuedo hacer quefuncione.Gracias@StephenHarris would you mind looking over my redirect question at http://wordpress.stackexchange.com/q/76991/10413 I've also tried your code from this answer using $pid but still can't get it to work. Thanks
- 0
- 2012-12-22
- Anagio
-
Estapregunta recibe unagran cantidad de visitas,así que considere aceptaresta respuesta si resolvió suproblema.Deesamanera,lapregunta aparece como respondida ynos ayuda amantenerel sitio ordenado.Gracias.This question gets a huge number of views, so please consider accepting this answer if it solved your problem. That way the question shows up as answered and helps us keep the site tidy. Thanks.
- 0
- 2016-07-23
- Andy Macaulay-Brook
-
- 2015-12-10
Tengo una solución simple,lea:
-
Siestá utilizando
wp_redirect($url)
en archivos detema ynofunciona,agregueob_clean() ob_start()
en su archivo defunciónenarriba. -
Si lo usaen el complemento,agregue
ob_clean() ob_start()
en el archivoprincipal del complementoen laparte superior.
Y asegúrese de haber agregado lafunción
exit() function after wp_redirect($url)
Deestamanera:$url = 'http://example.com'; wp_redirect($url); exit();
I have a simple solution, please read:
If you are using
wp_redirect($url)
in theme files, and it is not working addob_clean() ob_start()
in your function file on top.If using in plugin add
ob_clean() ob_start()
in the main plugin file on top.
And make sure you have added
exit() function after wp_redirect($url)
Like this:$url = 'http://example.com'; wp_redirect($url); exit();
-
Esto resuelveelproblema con Mozilla Firefox devolviendo 200en lugar de 302para que se lleve a cabo la redirección.Chrome redireccionamientras que Firefoxno lo hace.Esta solución ayuda.¡Gracias!This solves the issue with Mozilla Firefox returning 200 instead of 302 for the redirection to take place. Chrome redirects while Firefox doesn't. This fix helps. Thank you!
- 0
- 2018-09-12
- El'Magnifico
-
Estaes una respuestamás detallada siestá creando un complemento o diseñando unaplantilla.trabajóparami.This is a more detailed answer if you are creating a plugin or designing template. worked for me.
- 0
- 2019-07-10
- Sayed Mohd Ali
-
Heestado luchandopara queestofuncioneen mitemapersonalizado ... Funciona como unencanto ...I've been struggling to make this work in my custom theme... Works like a charm...
- 0
- 2019-10-08
- ShivangiBilora
-
- 2013-05-01
Noestoy seguro de siesto ayudará ...pero descubrí quetenía algo de códigoen unaplantilla yempecé conget_header () deestamanera:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
yestaba recibiendoelmismoproblema deencabezadoenviado anteriormente ... Lo que hicefuemoverget_header () alfinal delbloque y listo !!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
No se deshabilitóningún complemento.ytodoestuvobien ...puedeintentarlo siestofuncionapara usted
I am not sure if this will help... but I found that I had some code in a template and I was starting with get_header() in this way:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
and was getting the same issue of header previously sent... What I did was just move get_header() to the end of the block and voila!!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
No plugin was disabled. and everything was ok... you may give a try if this works for you
-
Estaes unabuenaforma de hacerlo,sitiene acceso a lafuente deltema.Los redireccionamientos debenejecutarse antes de la llamada a `get_header`.This is a good way to do it, if you have access to the theme source. Redirects should run before the call to `get_header`.
- 0
- 2013-05-01
- s_ha_dum
-
¡eliminarget_header ()tambiénfuncionóparamí!removing get_header() also worked for me!
- 0
- 2014-10-31
- Magico
-
Apuesto a queestaes la causamás comúnpara lamayoría de laspersonas que luchanporque `wp_redirect`nofuncionaI'd bet this is the most common cause for most people struggling with `wp_redirect` not working
- 0
- 2019-02-25
- joehanna
-
- 2012-03-21
Nunca usesel valor GUID de lapublicación,notiene que coincidir con la URL real de lapublicación.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Además,asegúrese de que
wp_redirect
noestébloqueadopor algomás que leimpida hacer sutrabajo correctamente.Desactivetodos los complementos y vuelva a Twenty Ten/Elevenpara comprobarlo.Never ever use the post GUID value, it does not have to match the real URL of the post.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Also, make sure
wp_redirect
is not plugged by something else which prevents it from doing its job correctly. Deactivate all plugins and revert to Twenty Ten/Eleven to check.-
+1buena llamada sobre `wp_redirect` que sepuede conectar+1 good call on `wp_redirect` being pluggable
- 0
- 2012-03-21
- Stephen Harris
-
Agradeciéndote....thaning you....
- 0
- 2012-03-21
- SANS780730
-
- 2019-01-16
Asegúrese denotener:
get_header();
o cualquierfunción de wordpress quepotencialmente cree contenidos comoencabezado ypie depáginaen suplantilla.De lo contrario,la redirecciónnofuncionará.Algunos desarrolladoresintentan limpiar lapágina usando
ob_start();
pero sitiene contenidoen supáginaincluso si usaob_start();
la redirecciónganó 'Nofunciona.y luego simplementepruebeeste código:
wp_redirect(get_permalink($post->ID)); exit;
Make sure you don't have:
get_header();
or any wordpress function that potentially creates contents like header and footer in your template. Otherwise the redirection won't work.Some developers try to clear the page by using
ob_start();
but if you have content in your page even if you useob_start();
the redirection won't work.and then simply try this code:
wp_redirect(get_permalink($post->ID)); exit;
-
- 2019-08-06
if( is_page( ['wfp-dashboard', 'wfp-checkout'] ) ){ if(!is_user_logged_in()){ @ob_flush(); @ob_end_flush(); @ob_end_clean(); wp_redirect( wp_login_url() ); exit(); } }
if( is_page( ['wfp-dashboard', 'wfp-checkout'] ) ){ if(!is_user_logged_in()){ @ob_flush(); @ob_end_flush(); @ob_end_clean(); wp_redirect( wp_login_url() ); exit(); } }
-
¿Puedeincluir algunaexplicación de cómoesto solucionaelproblema?Noestoy seguro depor qué haybúferes de salidaen el código,ytienen el operador `@`,`@`noevita que ocurranerrores,solo los oculta del registro deerroresCan you include some explanation of how this fixes the issue? I'm not sure why there are output buffers in the code, and they have the `@` operator, `@` doesn't prevent errors from happening, it just hides them from the error log
- 0
- 2020-07-22
- Tom J Nowell
-
- 2020-07-22
Elencabezado yaenviadoeselmotivoprincipal.Comoelencabezado ya seenvió,no sepuede reenviar yno se redirige.Úselo antes delencabezado comoen elgancho deinicio.
add_action('init', 'your_app_function');
header already sent is main reason. As header already sent, so its unable to resend it and fails to redirect. Use before header like in init hook.
add_action('init', 'your_app_function');
wp_redirect($post->guid)
nofunciona.¿Cómopuedo solucionaresto?Esteesmi código: