Créer une page WordPress protégée par un nom d'utilisateur et un mot de passe

4

Je dois créer une page privée qui ne sera visible que par les utilisateurs disposant d'un nom d'utilisateur et d'un mot de passe.

J'ai pu créer une page protégée par nom d'utilisateur et mot de passe. À présent, les utilisateurs sont abonnés. Par conséquent, ils ne peuvent pas voir la page privée par défaut. Est-il possible de rendre la page privée visible pour les abonnés?

Merci,

    
posée Neha Patel 20.03.2018 - 18:27

1 réponse

4

Pourquoi ne pas considérer un modèle spécifique qui teste pour voir si l'utilisateur est connecté en utilisant quelque chose comme:

if ( is_user_logged_in() ) {
   // your code for logged in user 
  } else {
    // your code for logged out user (e.g. a "you must be logged in" message)
  }

Vous pouvez même aller jusqu'à ajouter un champ personnalisé que vous utilisez pour indiquer que la page en question est privée pour les utilisateurs connectés, puis dans votre modèle de template page.php pour vérifier la présence de la valeur de ce champ avant de déterminer quelle page modèle à utiliser .... Je fais quelque chose de similaire à celui-ci pour les pages qui nécessitent que les utilisateurs soient connectés et qui fonctionne très bien.

Ceci élimine également la nécessité pour vous de donner un mot de passe à quiconque pour afficher une page - il vous suffira simplement de vous connecter avec vos propres informations d'identification.

MISE À JOUR: je pensais développer ma réponse pour aider les personnes qui ne savent peut-être pas comment restreindre le contenu à l'aide de champs et de modèles personnalisés. Voici ce que je fais:

  1. J'utilise l'incroyable plug-in "Advanced Custom Fields" (la version pro en vaut bien le coût, mais le plug-in gratuit fonctionnera correctement à cette fin). enlace

  2. Dans les paramètres du plug-in ACF, je crée un champ personnalisé qui correspond à une case à cocher intitulée "Restricted?". et l'appliquer à toutes les pages. Ainsi, lorsque je crée ou édite une page, je peux cocher la case si je le souhaite uniquement pour les utilisateurs connectés

  3. J'ai modifié le fichier de modèle page.php stock fourni avec mon thème afin d'ajouter une vérification de ce champ (contient-il ou non une valeur, par exemple, est-il coché), si la réponse est Oui, j'appelle le modèle de contenu limité à la page. Si la réponse est non, il utilise le modèle de page de contenu habituel. Voici mon code:

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $restrict = get_field('restricted'); if($restrict) { get_template_part( 'content', 'page-restricted' ); } else { get_template_part( 'content', 'page' ); } endwhile; endif; ?>

  4. J'ai copié le modèle content-page.php dans un nouveau modèle appelé content-page-restricted.php, que j'ai ensuite modifié pour ajouter un contrôle permettant de voir si l'utilisateur est connecté. Sinon, un message s'affiche. message pour vous connecter ou vous inscrire avec un lien vers notre page d’inscription, s’ils sont connectés, ils verront le contenu. Voici mon code pour cela:

    <?php if ( !is_user_logged_in() ) { echo'<div id="signupMssg">Please <a class="fancybox-inline" href="#fancyboxID-2">Login</a> or <a href="../Signup">Sign Up</a>'; echo '<div style="display:none;"><div id="fancyboxID-2">'; echo do_shortcode('[displayLogin]'); echo '</div></div></div>'; } else if ( is_user_logged_in() ) { // Follow the normal Page stuff here ?>

Le contenu de la boîte de fantaisie est là car j’affiche le formulaire de connexion dans une superposition contextuelle s’ils cliquent sur le mot "Connexion".

J'espère que cela vous aidera. Je trouve que c'est un moyen simple de limiter le contenu qui fonctionne mieux que d'utiliser des pages "privées" qui nécessitent un mot de passe commun ....

    
réponse donnée Trisha 20.03.2018 - 21:35

Lire d'autres questions sur les étiquettes