Rediriger l'URL de la page vers l'URL d'accueil sans utiliser de plugin
4 réponses
- votes
-
- 2015-03-15
Pour cefaire,utilisez le
template_redirect
hooken ajoutant unefonction à votrefunctions.php
:function redirect_to_home() { if(!is_admin() && is_page('2')) { wp_redirect(home_url()); exit(); } } add_action('template_redirect', 'redirect_to_home');
The correct way to do this is using the
template_redirect
hook by adding a function to yourfunctions.php
:function redirect_to_home() { if(!is_admin() && is_page('2')) { wp_redirect(home_url()); exit(); } } add_action('template_redirect', 'redirect_to_home');
-
- 2015-03-14
add_action( 'init', function() { if ( 0 === stripos( $_SERVER['REQUEST_URI'], '/page_id=2' ) ) { wp_redirect( home_url(), 301 ); exit; } }
Mettez ce code dans unmu-plugin ou dans lefichierfunctions.php de votrethème
add_action( 'init', function() { if ( 0 === stripos( $_SERVER['REQUEST_URI'], '/page_id=2' ) ) { wp_redirect( home_url(), 301 ); exit; } }
Put this code in a mu-plugin or in your theme's functions.php file
-
- 2015-03-14
Recherchezpage.php (en supposant que vous l'ayez déjà créé).Après cette ligne
<?php get_header(); ?>
ajoutez le code suivant:<?php if(is_page('2')) { wp_redirect( home_url(), '302' ); } ?>
Dans le code ci-dessus,
is_page('2')
esten fait l'ID de votrepage comme vous l'avez spécifié dans votreexemple.Locate page.php (assuming you've created it already). After this line
<?php get_header(); ?>
add the following code:<?php if(is_page('2')) { wp_redirect( home_url(), '302' ); } ?>
In the code above,
is_page('2')
is actually the ID of your page as you've specified in your example.-
Celapeutfaire letravailmaisje pense qu'ilestpréférable,en fonction de la situationexacte,defaire la redirection auniveau du serveur,parexempleen utilisant .htaccess,donc aucune ligne de coden'estexécutéeet vousne gaspillezpas de ressources.This can do the job but I think it is better, depending on the exact situation, to do the redirection at server level, for example using .htaccess, so zero line of code is exectued and you don't waste resources.
- 0
- 2015-03-14
- cybmeta
-
@cybmetapoint valableen effet :) Merci de l'avoirporté àmon attention.@cybmeta valid point indeed :) Thanks for bringing it to my attention.
- 0
- 2015-03-14
- cristian.raiber
-
Encore unenote.Utilisez votre code dans un crochet d'action,comme `init` suggérépar @paul dans sa réponse,pas dans unfichiermodèle comme vous l'avez suggéré.Si vouspassez à un autrethème,vousperdez lafonctionnalité,c'estpourquoi lesfonctionnalitéset l'apparence (thèmeet fichiermodèle) doivent être séparés.Jemodifierais la réponsepour ajouter le crochet d'action.One more note. Use your code in an action hook, like `init` suggested by @paul in his answer, not in a template file as you suggested. If you switch to other theme, you loose the funtionality, that is why functinalities and look&feel (theme and template file) should be separated. I would edit the answer to add the action hook.
- 0
- 2015-03-14
- cybmeta
-
Vrai aussi.Ilesttemps dene paspenser à optimiser le code,mais l'accentestmis sur l'accomplissement de latâcheplus rapide :) C'était (àmon avis) l'un de ces scénarios. Cependant,j'apprécie vraiment votre contributionet c'est vraimentprécieux - chaquejourj'apprends quelque chose denouveauici :)True as well. There's time one doesn't think about optimising the code but the focus is on getting the task at hand done faster :) This is was (in my opinion) one of those scenarios. I do, however, really appreciate your input and it's really valuable - everyday I learn something new in here :)
- 0
- 2015-03-14
- cristian.raiber
-
Écrire votre code dans un crochet d'actionest aussi rapide que l'écrire dans unfichiermodèle.Write your code in an action hook is as fast as write it in a template file.
- 0
- 2015-03-14
- cybmeta
-
Jeparlais également des solutions.Parfois,il suffit de réfléchir viteet de résoudre untravail rapide,parfois d'optimiser unmorceau de code.Néanmoins,aucun coden'estmauvais,dumoins demonpoint de vue.I was talking about the solutions as well. Sometimes, you just need to think fast and solve a quick job, sometimes you have to optimize a piece of code. Nonetheless, no code is bad, at least from my point of view.
- 0
- 2015-03-14
- cristian.raiber
-
- 2015-03-14
WP_REDIRECT est lafonction que vous devez utiliserpour la redirection dans wordpress.Ilpeut être utilisé comme:
wp_redirect( $location, $status ); exit; //$location is required parameter. It is used to give the target url to which page will get redirected. //$status is optional. It is used to set status code. Default is 302
Vouspouvez utiliser cettefonctionpour rediriger les utilisateurs d'unepage vers une autre.Il doit êtreplacé soit dansfunctions.php,soit dans lefichiermodèle utilisépour afficher lapage actuelle.Maintenant,pour l'utiliser dans votre situation,placez simplement le code suivant aubas de votrefichierfunctions.php
$redirectFromPageID = 2; //Redirect from Page having ID of 2 $redirectTo = home_url(); //Redirect to Home URL if( is_page( $redirectFromPageID ) ){ wp_redirect( $redirectTo ); exit; }
WP_REDIRECT is the function that you need to use for redirecting in wordpress. It can be used like :
wp_redirect( $location, $status ); exit; //$location is required parameter. It is used to give the target url to which page will get redirected. //$status is optional. It is used to set status code. Default is 302
You can use this function to redirect users from one page to other. It should be placed in either functions.php or the template file which is being used to display the current page. Now to use it in your situation, simple place the following code at the bottom of your functions.php file
$redirectFromPageID = 2; //Redirect from Page having ID of 2 $redirectTo = home_url(); //Redirect to Home URL if( is_page( $redirectFromPageID ) ){ wp_redirect( $redirectTo ); exit; }
Comment rediriger l'URL de cettepage,
http://localhost/wordpress_rnd/?page_id=2
,vers l'URL d'accueil,http://localhost/wordpress_rnd/
,sans utiliser deplugins?