web-dev-qa-db-fra.com

Redirection vers la page de destination Wordpress si non connecté

J'utilise le code suivant dans mon fichier functions.php pour rediriger les utilisateurs qui ne sont pas connectés à une page de destination particulière

    <?php
if(!is_user_logged_in()) {
    wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
}

Le problème est que je ne peux plus accéder à mon compte wp-login ou à mon compte wp-admin. Chaque URL redirige vers landingpage. Existe-t-il un moyen d'exclure certaines URL de la redirection?

2
Ryso

quelque chose comme:

if (
  !in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))
  && !is_admin()
  && !is_user_logged_in()
) {
  wp_redirect('http://www.mysite.com/landingpage', 301);
  exit;
}

devrait le faire.

voir http://codex.wordpress.org/Function_Reference/is_admin & Vérifiez si wp-login est la page actuelle

3
Max Girkens
 <?php
if($_SERVER['REQUEST_URI'] != '.../' || $_SERVER['REQUEST_URI'] != '.../'){

   if(!is_user_logged_in()) {
       wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
   }
}

Cela teste essentiellement si vous êtes sur une page spécifique avant d'exécuter la redirection, si la première instruction renvoie true et si l'utilisateur n'est pas connecté, il sera redirigé.

0
1321941