Comment rediriger les utilisateurs non connectés vers une page spécifique?
4 réponses
- votes
-
- 2014-01-31
Voici 2exemples que vous devrezmodifier légèrementpour qu'ilfonctionne selon vosbesoins spécifiques.
add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' ); function redirect_non_logged_users_to_specific_page() { if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) { wp_redirect( 'http://www.example.dev/page/' ); exit; } }
Mettez ceci dans votrefichier defonctions dethèmeenfant,changez l'ID depage ou le sluget l'URL de redirection.
Vouspouvez également utiliser un code comme celui-ci:
add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page('slug') && ! is_user_logged_in() ) { wp_redirect( 'http://www.example.dev/your-page/', 301 ); exit; } }
Vouspouvez ajouter lemessage directement sur lapage ou si vous souhaitez afficher lemessagepourtous les utilisateursnon connectés, ajoutez-le au code .
Here are 2 examples which you will need to modify slightly to get it working for your specific needs.
add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' ); function redirect_non_logged_users_to_specific_page() { if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) { wp_redirect( 'http://www.example.dev/page/' ); exit; } }
Put this in your child theme functions file, change the page ID or slug and the redirect url.
You could also use code like this:
add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page('slug') && ! is_user_logged_in() ) { wp_redirect( 'http://www.example.dev/your-page/', 301 ); exit; } }
You can add the message directly to the page or if you want to display the message for all non logged in users, add it to the code.
-
Mercipour votre réponse J'ai aimé cette `add_action ('template_redirect','redirect_to_specific_page'); function redirect_to_specific_page () { if (is_page ('http://mondomaine.com/participate') &&!is_user_logged_in ()) { wp_redirect («http://mondomaine.com/login»,301); sortie; } } `Mais çane marchepasThanks for you answer I did like this `add_action('template_redirect', 'redirect_to_specific_page'); function redirect_to_specific_page() { if ( is_page('http://mydomain.com/participate') && !is_user_logged_in()) { wp_redirect('http://mydomain.com/login', 301); exit; } }` But its not working
- 0
- 2014-01-31
- user3187719
-
Utilisez lapagei.d ou slugici,pas l'url http://mondomaine.com/participate http://codex.wordpress.org/Conditional_TagsUse the page i.d or slug here, not the url http://mydomain.com/participate http://codex.wordpress.org/Conditional_Tags
- 0
- 2014-01-31
- Brad Dalton
-
is_page ('participer')is_page('participate')
- 0
- 2014-01-31
- Brad Dalton
-
- 2017-11-17
Ce seraitmieux:
if ( !is_user_logged_in() ) { auth_redirect(); } // continue as normal for authenticated users
Cela redirige l'utilisateur vers lapage de connexion.Unefois connecté,l'utilisateurest redirigé vers lapage sécurisée à laquelleiltentait d'accéderinitialement.
Documentationici:
https://codex.wordpress.org/Function_Reference/auth_redirect
This would be better:
if ( !is_user_logged_in() ) { auth_redirect(); } // continue as normal for authenticated users
What this does is redirect the user to the login page. Once logged in, the user is redirected back to the secure page they were trying to access initially.
Documentation here:
https://codex.wordpress.org/Function_Reference/auth_redirect
-
- 2014-01-30
Commentpouvons-nous vous dire où lemettre si vousne nous ditespas quoiet où vous souhaitez l'afficher? Desmessagesentiers? Despages? Partiespersonnalisées depages? Désolé ...je suppose quemaboule de cristalne fonctionnepastout àfait aujourd'hui.
Puisque vous êtes,et je vous cite: "un débutanten wordpress",vous devriezplutôt apprendre,que demander une réponse directe.
Quant à où vous devriez lire le lien de référence 1. Cela vous dira dans quelfichier vous devez lemettre.
Quant à comment procéder,vous devez d'abord lire les liens de référence 2et 3.
Dans l'ensemble,cela devrait ressembler à ceci:
if ( is_user_logged_in() ) { the_content(); } else { echo 'For members only'; }
Bien sûr,le code ci-dessus doitentrer dans une boucle . Vouspouvez le construire aussi complexe ou aussi simple que vous le souhaitez. Parexemple,au lieu d'un simpletexte si vousn'êtespas connecté,vouspouvez affichertout leformulaire d'inscriptionparexemple ou - commeje le suggère - un écran divisé où l'utilisateurpeut se connecter (car l'utilisateurpeut avoir un comptemais a oublié de se connecter) ou s'inscrire (s'iln'en apas).
Ajouté après les commentaires ci-dessous:
Pour rediriger,utilisez
header
avecwp_login_url
-encore unefois,vérifiez les références 1et 2 ci-dessous:if ( is_user_logged_in() ) { the_content(); } else { header('Location: ' . wp_login_url()); }
Référence:
How can we tell you where to put it if you didn't tell us what and where you want to display it? Whole posts? Pages? Custom parts of pages? Sorry... I guess my crystal ball isn't quite working today.
Since you are, and I quote you: "a newbie to wordpress" you should rather learn, than to ask for direct answer.
As for where you should read the reference 1 link. This will tell you which file you need to put it in.
As for how to do it you should first read reference link 2 and 3.
Overall it should look something like this:
if ( is_user_logged_in() ) { the_content(); } else { echo 'For members only'; }
Of course the above code needs to go into a loop. You can build it up as complex or as simple as you want. For example instead of simple text if not logged in you can display whole sign up form for example or - as I would suggest - a divided screen where user can log in (since user can have an account but forgot to sign in) or sign up (if he doesn't have one).
Added after comments below:
To redirect use
header
with thewp_login_url
- again, check references 1 and 2 below:if ( is_user_logged_in() ) { the_content(); } else { header('Location: ' . wp_login_url()); }
Reference:
-
Enfait,je ne connaispas lafonction sur wordpress qui renvoie l'URL ou lepermalien demandé.Et àpropos dumessage d'affichage,laissez-le,je veux simplement les rediriger lorsqu'ils demandent certaines URL sans être connectés.Actually i don't know the funtction on wordpress that returns the requested URL or permalink. And about the dispaly message, leave it, I want to just want to redirect them when they request for certain URL without being logged.
- 0
- 2014-01-31
- user3187719
-
puis-je lefaire avec $pagenow?can I do it with $pagenow?
- 0
- 2014-01-31
- user3187719
-
@ user3187719 amodifiéma réponse d'origineet ajouté la solution à rediriger.PS.`$pagenow`?Vousessayez detuer unemouche avec un canon sûr que celafonctionnera,maispourquoi si complexe?Rester simple.PS2: Apprenez PHPet WP Codex.@user3187719 edited my original answer and added the solution to redirect. PS. `$pagenow`? You are trying to kill a fly with a cannon sure it will work, but why so complex? Keep it simple. PS2: Learn PHP and WP Codex.
- 0
- 2014-01-31
- Borek
-
- 2014-12-13
Vousne pouvezpas rediriger vers unepage spécifique,mais chaque utilisateurnon connecté sera redirigé vers l'écran de connexion.
<?php auth_redirect(); ?>
Référence Wordpress:
auth_redirect()
Justepourmentionner une autre solution.
You can't redirect to a specific page, but every non-logged-in user will be redirected to Log-In Screen.
<?php auth_redirect(); ?>
Wordpress Reference:
auth_redirect()
Just to mention another solution.
Comment rediriger les utilisateursnon connectés demandant unepage/URL spécifique vers une autrepage/URLet afficher unmessage comme "pour lesmembres uniquement".Je sais que c'est assezfacile à coderen utilisant lafonction! Is_user_logged_in ()maisje ne saispas comment le coder carje suis un débutant sur WordPress.Attention àme dire lefichierpourmettre le code aussi.