Restreindre les pages dans WordPress pour exiger une connexion

Screen Shot 2013 07 01 à 12.23.52 PM

login_lock.jpgCette semaine, nous terminions l'implémentation d'un thème personnalisé sur un site client et ils nous ont demandé de créer une sorte d'interaction où certaines pages étaient réservées aux abonnés enregistrés. Au début, nous avons pensé à implémenter des plugins tiers, mais la solution était en fait assez simple.

Tout d'abord, nous avons copié le modèle de page dans un nouveau fichier (tout nom convient, il suffit de conserver l'extension php). En haut de la page, assurez-vous de commenter la page afin de pouvoir la voir dans l'éditeur de modèles par son nom:


Ensuite, recherchez la ligne dans le code de votre page qui affiche le contenu. Ça devrait ressembler à ça:


Maintenant, vous devrez enrouler du code autour de cette ligne:

Abonné seulement Nous sommes désolés, le contenu que vous essayez d'atteindre est limité aux abonnés uniquement.

Le code commence par vérifier la session pour voir si l'utilisateur est connecté à votre site WordPress. S'ils sont connectés, le contenu s'affiche. S'ils ne sont pas connectés, le message indique que vous essayez d'accéder au contenu restreint.

Pour utiliser la page, vous devrez sélectionner le Abonnés seulement modèle de page dans la section avancée des options de votre page (sur la barre latérale). Cela limitera la page aux lecteurs connectés.

Si vous souhaitez être vraiment sophistiqué, vous pouvez également ajouter une méthode de connexion et de déconnexion à votre barre latérale:

">Se déconnecter /wp-login.php">Connexion client

28 Commentaires

  1. 1
  2. 2
  3. 3
    • 4

      Salut Partha,

      Ce serait assez simple - vous pourriez ajouter la même technique à l'en-tête de la page et dire en gros… si (pas d'ID utilisateur ET de page différent du nom de page), alors l'en-tête est transféré à la page de connexion.

      Doug

  4. 5

    grande solution élégante! juste ce dont j'avais besoin, j'envisageais sérieusement de créer un système de connexion externe.
    ça bascule!

  5. 6
    • 7
      • 8

        Ce n'est pas convivial mais ça va… J'ai l'impression que quelques photos de ce que je suis censé faire pourraient aider. Sinon… je vais juste essayer des trucs jusqu'à ce que ça marche!

        • 9

          copiez page.php, renommez page2.php et insérez le code ci-dessus, enregistrez le fichier, remettez-le en ligne dans le contenu / le thème / tout ce qui est demandé, accédez à l'article ou changez la mise en page par défaut en page2.php. Pas besoin de créer un nouveau style de page / mise en page, copiez simplement celui que vous utilisez et renommez-le. donc fullwidth.php est fullwidth2.php aussi simple que cela.

      • 10

        Ok donc après BEAUCOUP de tentatives et de regarder d'autres tutoriels sur Internet… J'ai trouvé que FAIRE un nouveau modèle de page est mon problème. J'en crée un dans un éditeur de texte et j'essaye de le télécharger vers… où? Je ne sais męme pas o aller. Je n'arrive pas à trouver cet emplacement secret vers lequel télécharger!

        • 11

          Tellement vrai, LaRocque! Vous devez disposer d'un programme FTP et accéder au dossier de thème de votre site Web pour pouvoir y télécharger le fichier. Il n'y a aucun moyen actuellement de le faire via l'écran administratif. Une exception serait d'installer un plugin «File Manager» qui vous permet de créer de nouveaux fichiers. Attention cependant! 

  6. 12
  7. 13
  8. 14
  9. 15
    • 16

      Vous pouvez certainement simplement vérifier si un utilisateur est connecté ou non; cependant, la méthode définie ci-dessus vous permettra éventuellement d'utiliser des niveaux d'autorisation si vous souhaitez personnaliser les niveaux!

  10. 17
  11. 18
  12. 19

    OK, alors je vais mordre… Comment modifieriez-vous cela pour permettre la vérification des autorisations?

    Disons que nous voulons toujours permettre à quiconque de créer son propre nom d'utilisateur «Abonné» et de publier des réponses.
    MAIS - nous n'accordons l'accès à la page «Abonnés uniquement» qu'aux utilisateurs spécifiés par un administrateur?

  13. 20
  14. 21

    Douglas - j'ai utilisé votre code - et pour la plupart, cela fonctionne très bien! Le problème que j'ai est que le lien de déconnexion renvoie à un site qui n'existe pas. J'ai en fait essayé plusieurs codes wordpress sur le Web pour faire fonctionner le code de déconnexion. . . mais l'utilisateur reste toujours connecté et le retour est //wp-login.php?redirect_to=?>log%20in%20%20%20%20%20%20%20%20%20%20%20%20 % 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20

    Des pensées?

    • 22

      On dirait que c'est peut-être juste que lorsque le code a été copié à partir de votre navigateur, il a ajouté un tas d'espaces HTML, Ryan. Copiez le code dans le Bloc-notes ou Textpad, puis copiez-le dans votre modèle pour vous débarrasser de ces éléments.

  15. 23

    Ok, c'est exactement ce que je dois faire mais j'ai une question. S'ils ne sont pas abonnés, comment puis-je faire apparaître une boîte «Connexion» ou «S'abonner» pour qu'ils puissent accéder au contenu?

    Merci

  16. 25

    Merci pour le code. rendra les gens fâchés contre moi, mais ils supposent se connecter quand ils veulent quelque chose qui ne permet pas à tout le monde d'accéder gratuitement pour rendre les fichiers faciles à trouver.

  17. 26

    Il semble que cette méthode soit sujette au détournement de session. Le cookie de connexion sera ajouté dans la zone sécurisée, mais comme wordpress le sert comme un cookie non sécurisé, il sera toujours servi si l'utilisateur navigue vers une partie du site qui n'est pas cryptée.

  18. 28

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..