La fonction wp_redirect () ne fonctionne pas
7 réponses
- votes
-
- 2012-03-21
Deux chosesne vontpasici:
- N'utilisezpas
$post->guid
comme URL - Vous devez
exit()
après avoir utiliséwp_redirect()
( voir le Codex )wp_redirect()
ne sefermepas automatiquementet devraitpresquetoujours être suiviparexit.
//..... 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();
-
Vousbattre de 30 secondes: DBeat you by 30 seconds :D
- 0
- 2012-03-21
- soulseekah
-
celane fonctionnepas,sij'exécute la console depage,affichez 302trouvés 479ms jquery ... r=1.7.1 (ligne 4) GET http://localhost/wordpress/newpages-17/ 200 OK 1.2s chargement ..........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
-
C'est uneerreur JS.Rien à voir avec `wp_redirect`.La réponse ci-dessusest labonnefaçon de lefaire,vous devez doncfaire autre chose demal.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
-
désolé.it afficher seulement GET localhost/wordpress/newpages-17 200 OK 1.2s chargement ..........sorry.it show only GET localhost/wordpress/newpages-17 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
@StephenHarrispourriez-vous consulterma question de redirection sur http://wordpress.stackexchange.com/q/76991/10413 J'ai égalementessayé votre code àpartir de cette réponseen utilisant $pidmaisje n'arrivetoujourspas à lefairefonctionner.Merci@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
-
Cette question reçoit ungrandnombre de vues,alorspensez à accepter cette réponse sielle a résolu votreproblème.De cettefaçon,la question apparaît comme une réponseet nous aide àgarder le siteen ordre.Merci.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
J'ai une solution simple,veuillez lire:
-
Si vous utilisez
wp_redirect($url)
dans lesfichiers dethème,et que celane fonctionnepas,ajoutezob_clean() ob_start()
dans votrefichier defonction surhaut. -
Si vous utilisez leplugin,ajoutez
ob_clean() ob_start()
dans lefichierprincipal dupluginen haut.
Et assurez-vous d'avoir ajouté lafonction
exit() function after wp_redirect($url)
Comme ceci:$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();
-
Cela résout leproblème avec Mozilla Firefox renvoyant 200 au lieu de 302pour que la redirection ait lieu.Chrome redirige alors que Firefoxne lefaitpas.Ce correctif aide.Je vous remercie!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
-
C'est une réponseplus détaillée si vous créez unplugin ou concevez unmodèle.travaillépourmoi.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
-
J'aieu dumal àfaire cetravail dansmonthèmepersonnalisé ... Fonctionne comme un 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
Jene saispas si cela aidera ...maisj'aitrouvé quej'avais du code dans unmodèle etje commençais avecget_header () de cettefaçon:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
et je recevais lemêmeproblème d'en-têteprécédemmentenvoyé ... Ce quej'aifait était de déplacerget_header () à lafin dublocet letourestjoué !!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
Aucunpluginn'a été désactivé.ettout allaitbien ... vouspouvezessayer si celafonctionnepour vous
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
-
C'est unebonnefaçon de lefaire,si vous avez accès à la source duthème.Les redirections doivent s'exécuter avant l'appel à `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 suppression deget_header () a égalementfonctionnépourmoi!removing get_header() also worked for me!
- 0
- 2014-10-31
- Magico
-
Jeparie que c'est la cause laplusfréquentepour laplupart desgens qui ont dumal àne pasfonctionnerI'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
N'utilisezjamais la valeur GUID de l'article,ilne doitpasnécessairement correspondre à l'URL réelle de l'article.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Assurez-vous également que
wp_redirect
n'estpasbranchépar quelque chose d'autre qui l'empêche defaire sontravail correctement.Désactiveztous lespluginset revenez à Twenty Ten/Elevenpour vérifier.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.-
+1bon appel sur `wp_redirect` étantenfichable+1 good call on `wp_redirect` being pluggable
- 0
- 2012-03-21
- Stephen Harris
-
te remercie....thaning you....
- 0
- 2012-03-21
- SANS780730
-
- 2019-01-16
Assurez-vous dene pas avoir:
get_header();
outoutefonction wordpress qui créepotentiellement des contenus comme l'en-têteet lepied depage dans votremodèle.Sinon,la redirectionne fonctionnerapas.Certains développeursessaient d'effacer lapageen utilisant
ob_start();
mais si vous avez du contenu dans votrepagemême si vous utilisezob_start();
la redirection agagné 'ttravail.et essayez simplement ce code:
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(); } }
-
Pouvez-vousexpliquer comment cela résout leproblème?Jene saispaspourquoiil y a destampons de sortie dans le code,et ils ont l'opérateur `@`,`@`n'empêchepas leserreurs de seproduire,il lesmasque simplement dujournal deserreursCan 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'en-tête déjàenvoyéest la raisonprincipale.Entant qu'en-tête déjàenvoyé,ilne peut doncpas le renvoyeret neparvientpas à le rediriger.Utilisez avant l'en-tête comme dans le hookinit.
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)
ne fonctionnepas.Commentpuis-je résoudre ceproblème?Voicimon code: