La funzione wp_redirect () non funziona
7 risposta
- voti
-
- 2012-03-21
Due cose sbagliate qui:
- Non utilizzare
$post->guid
come URL - Devi
exit()
dopo aver utilizzatowp_redirect()
( vediil Codex )wp_redirect()
nonesce automaticamentee dovrebbe quasi sempreessere seguito daexit.
//..... 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();
-
Batti di 30 secondi: DBeat you by 30 seconds :D
- 0
- 2012-03-21
- soulseekah
-
questononfunziona,seeseguo la console dellapaginamostra 302 Found 479ms jquery ... r=1.7.1 (riga 4) OTTIENI http://localhost/wordpress/newpages-17/ 200 OK 1.2s caricamento ..........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
-
Questo è unerrore JS.Niente a che vedere con `wp_redirect`.La risposta sopra èilmodo correttoperfarlo,quindi devifare qualcos'altro di sbagliato.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.itmostra solo GET localhost/wordpress/newpages-17 200 OK 1.2s caricamento ..........sorry.it show only GET localhost/wordpress/newpages-17 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
@StephenHarristi dispiacerebbeesaminare lamia domanda di reindirizzamento su http://wordpress.stackexchange.com/q/76991/10413 Ho ancheprovatoiltuo codice da questa risposta usando $pidmanon riesco ancora afarlofunzionare.Grazie@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
-
Questa domanda ottiene unnumeroenorme di visualizzazioni,quindi considera di accettare questa risposta se ha risoltoiltuoproblema.In questomodo la domanda appare come rispostae ci aiuta amantenereil sitoin ordine.Grazie.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
Ho una soluzione semplice,leggi:
-
Se stai usando
wp_redirect($url)
nei file deltemae nonfunziona aggiungiob_clean() ob_start()
neltuofile difunzione suin alto. -
Se si utilizzanelplugin,aggiungere
ob_clean() ob_start()
nelfileprincipale delpluginin alto.
E assicurati di aver aggiunto lafunzione
exit() function after wp_redirect($url)
in questomodo:$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();
-
Questo risolveilproblema con Mozilla Firefox che restituisce 200invece di 302 affinchéil reindirizzamento abbia luogo.Chrome reindirizzamentre Firefoxno.Questa correzione aiuta.Grazie!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
-
Questa è una rispostapiù dettagliata se stai creando unplugin oprogettando unmodello.hafunzionatoperme.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
-
Ho lottatoperfarlofunzionarenelmiotemapersonalizzato ... Funziona come unfascino ...I've been struggling to make this work in my custom theme... Works like a charm...
- 0
- 2019-10-08
- ShivangiBilora
-
- 2013-05-01
Non sono sicuro che questopossa aiutare ...ma ho scoperto di avere del codicein unmodello e stavoiniziando conget_header ()in questomodo:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
e stavo ottenendo lo stessoproblema diintestazioneinviatoin precedenza ... Quello che hofatto è stato spostareget_header () allafine delbloccoe voilà !!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
Nessunplugin è stato disabilitato.etutto andavabene ...puoiprovare sefunzionaperte
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
-
Questo è unbuonmodoperfarlo,se hai accesso allafonte deltema.I reindirizzamenti dovrebberoessereeseguitiprima della chiamata 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
-
la rimozione diget_header () hafunzionato ancheperme!removing get_header() also worked for me!
- 0
- 2014-10-31
- Magico
-
Scommetto che questa è la causapiù comuneper lamaggiorparte dellepersone che lottano con `wp_redirect` chenonfunzionaI'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
Non usaremaiil valore GUID delpost,non devenecessariamente corrispondere all'URL reale delpost.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Inoltre,assicurati che
wp_redirect
non sia collegato a qualcos'altro chegliimpedisce di svolgere correttamenteil suo lavoro.Disattivatuttii plugine torna a Twenty Ten/Elevenper controllare.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.-
+1buona chiamata quando "wp_redirect" è collegabile+1 good call on `wp_redirect` being pluggable
- 0
- 2012-03-21
- Stephen Harris
-
Ringraziandovi....thaning you....
- 0
- 2012-03-21
- SANS780730
-
- 2019-01-16
Assicurati dinon avere:
get_header();
o qualsiasifunzione wordpress chepotenzialmente crea contenuti comeintestazionee piè dipaginaneltuomodello.Altrimentiil reindirizzamentononfunzionerà.Alcuni sviluppatoritentano di cancellare lapagina utilizzando
ob_start();
ma se hai dei contenutinellatuapagina anche se utilizziob_start();
il reindirizzamento ha vinto "t lavoro.e poiprova semplicemente questo codice:
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(); } }
-
Puoiincludere qualche spiegazione su come questo risolveilproblema?Non sono sicuro delmotivoper cui ci sonobuffer di outputnel codicee hanno l'operatore "@","@"nonimpedisce che si verifichinoerrori,linasconde semplicemente dal registro deglierroriCan 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
l'intestazionegiàinviata èilmotivoprincipale.Poiché l'intestazione ègià statainviata,quindinon èpossibileinviarlanuovamentee non riesce a reindirizzarla.Usaprima dell'intestazione comein init hook.
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)
nonfunziona.Comeposso risolvere questoproblema?Questo èilmio codice: