Função WP_Redirect () não está funcionando
7 respostas
- votos
-
- 2012-03-21
Duas coisaserradas aqui:
- não use
$post->guid
como um URL - você deve
exit()
após usarwp_redirect()
( Veja o códice ).
wp_redirect()
não sai automaticamentee deve quase sempre ser seguidopor saída.
//..... 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();
-
Baterem vocêpor 30 segundos: DBeat you by 30 seconds :D
- 0
- 2012-03-21
- soulseekah
-
issonãoestáfuncionando,seeuexecutar o console depágina Show 302encontrado 479ms. jquery ... r=1.7.1 (linha 4) Obtenha http://localhost/wordpress/newpages-17/ 200 OK 1.2s carregando ..........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
-
Isso é umerrojs.Nada a ver com `wp_redirect`.A resposta acima é amaneira correta defazê-lo,então você deveestarfazendo algoerrado.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
-
Desculpe. Ver apenas obter localhost/wordpress/newpages-17 200 ok 1.2s carregando ..........sorry.it show only GET localhost/wordpress/newpages-17 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
@Stephenharris Você seimportaria de olharpara aminhapergunta redirecionadaem http://wordpress.stackexchange.com/q/76991/10413 Eutambémtentei o seu código desta resposta usando $pid,mas aindanão consigotrabalhar.Obrigado@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
-
Esta questão recebe umgrandenúmero de visualizações,então,porfavor,considere aceitaresta resposta se resolver oproblema.Dessaforma,a questão aparece como respondidae nos ajuda amanter o site arrumado.Obrigado.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
Eutenho uma solução simples,leia:
- .
-
Se vocêestiver usando
wp_redirect($url)
em arquivostemáticos,e nãoestáfuncionando Adicionarob_clean() ob_start()
no seu arquivo defunçãotop. -
Seestiver usandonoplugin Adicionar
ob_clean() ob_start()
no arquivopluginprincipalnotopo.
e verifique se você adicionou
exit() function after wp_redirect($url)
assim:$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();
-
Isso resolve oproblema com o Mozilla Firefox,retornando 200em vez de 302para o redirecionamento ocorrer.Redirecionamentos de cromoenquanto o Firefoxnão.Essa correção ajuda.Obrigado!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
-
Esta é uma respostamais detalhada se vocêestiver criando umplugin ou design.trabalhouparamim.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
-
Eutenho lutadoparafazerestetrabalhonomeutemapersonalizado ...funciona como um charme ...I've been struggling to make this work in my custom theme... Works like a charm...
- 0
- 2019-10-08
- ShivangiBilora
-
- 2013-05-01
Nãotenho certeza seisso ajudará ...mas descobri quetinha algum códigoem ummodelo eeuestava começando comget_header () destaforma:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
e foi obter amesmaedição do cabeçalho anteriormenteenviado ... o queeufizfoi apenasmoverget_header () até ofinal doblocoe voila !!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
Nenhumpluginfoi desativado.Etudoestavabem ... vocêpodetentar seissofuncionarpara você
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
-
Esta é umaboamaneira defazerisso,se vocêtiver acesso àfonte dotema.Os redirecionamentos devem serexecutados antes da chamadapara "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
-
Removendo Get_Header ()tambémfuncionouparamim!removing get_header() also worked for me!
- 0
- 2014-10-31
- Magico
-
Aposto queesta é a causamais comumpara amaioria daspessoas que lutam com o `wp_redirectnãoestáfuncionandoI'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 use o valorpós-guid,elenãoprecisa corresponder ao URL real dopost.
http://codex.wordpress.org/changing_the_site_url#important_guid_note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Além disso,certifique-se de
wp_redirect
nãoestá conectadopor outra coisa que aimpede defazer seutrabalho corretamente.Desativartodos ospluginse reverterpara vinte dez/onzepara verificar.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.-
+1 Boa chamadaem `wp_redirect sendopluggable+1 good call on `wp_redirect` being pluggable
- 0
- 2012-03-21
- Stephen Harris
-
Agradecendo você....thaning you....
- 0
- 2012-03-21
- SANS780730
-
- 2019-01-16
Certifique-se denãoter:
get_header();
ou qualquerfunção do WordPress quepotencialmente cria conteúdos como cabeçalhoe rodapéem seumodelo.Caso contrário,o redirecionamentonãofuncionará.Alguns desenvolvedorestentam limpar apágina usando
ob_start();
mas se vocêtiver conteúdoem suapágina,mesmo se você usarob_start();
o redirecionamentoganho 'funciona.e,em seguida,bastatentareste 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(); } }
-
Vocêpodeincluir algumaexplicação de comoisso corrige oproblema?Nãotenho certezapor que hábuffers de saídano código,e elestêm o 'operador' @ `',` @ `nãoimpedem que oserros aconteçam,apenas osesconde do log deerrosCan 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
Headerjáenviado é oprincipalmotivo.Como o cabeçalhojáenviado,então éincapaz de reenviá-loe não redirecionar.Use antes do cabeçalho comono Gancho Init.
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)
nãoestáfuncionando.Comoposso consertarisso?Este é omeu código: