web-dev-qa-db-fra.com

Fonctionnalité du contrôleur - si l'utilisateur n'est pas connecté, envoyez-le à une page spécifique (pas wp_login)

Cela semble extrêmement simple, mais je n'arrive pas à comprendre.

Je veux les fonctionnalités suivantes:

Si l'utilisateur n'est pas connecté et tente de se connecter n'importe où sur le site (y compris la page d'accueil), envoyez-le vers une page spécifique.

J'ai essayé, en ajoutant ce qui suit, mais j'ai reçu un message "Ne pas rediriger correctement":

if (!is_user_logged_in() ) {
 wp_redirect ('/public' );
 exit;
 }

J'imagine que si je peux ajouter un article à la déclaration if en disant que la page à laquelle je suis en train d'accéder n'est pas publique, je ne sais pas trop comment procéder correctement.

Tous les plugins que je vois là-bas redirigent vers l'écran de connexion wordpress.

Toute aide est grandement appréciée!

Merci,

MG

2
setterGetter

La raison pour laquelle vous recevez un message not redirecting properly est parce que vous créez une boucle sans fin de redirections. Ils sont redirigés vers /public mais, comme ils ne sont pas connectés, ils sont redirigés encore et encore et encore ...

Essayez plutôt ce code:

if( ! is_user_logged_in() && ! is_page("public") )
{
    wp_redirect( site_url("/public") );
    exit;
}

Je suppose que /public est une page que vous avez configurée.

3
Brady