Cette 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 envelopper 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 devez 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 restreindra 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
Nice post… Je suis surpris que cela ne soit pas disponible dans les options de visibilité.
C'est une solution géniale, Doug ! Un excellent exemple de trouver la solution facile, mais efficace.
Poste utile, ceci. A tweeté cette page. J'ai une question cependant.
Que se passe-t-il si vous souhaitez montrer une partie d'une page de blog à tous les visiteurs, mais l'intégralité de celle-ci uniquement aux abonnés ?
Salut Partha,
Ce serait assez simple - vous pourriez ajouter la même technique à l'en-tête de la page et dire essentiellement… si (pas d'ID utilisateur ET page non égal au nom de la page) puis en-tête vers la page de connexion.
Doug
grande solution élégante! exactement ce dont j'avais besoin, j'envisageais sérieusement de créer un système de connexion externe.
ça déchire !
Ce n'est PAS convivial pour les personnes qui apprennent. Pas convivial du tout !!!!
Je n'ai certainement pas écrit cela à l'esprit pour le nouveau venu. Désolé Devs_mum !
Ce n'est pas convivial mais ce n'est pas grave… J'ai l'impression que quelques photos de ce que je suis censé faire aideraient. Sinon… Je vais juste essayer des trucs jusqu'à ce que ça marche !
copiez page.php , renommez page2.php et insérez le code ci-dessus, enregistrez le fichier, remettez-le en ligne dans content/theme/whateveritiscalled, accédez à la publication ou modifiez la mise en page par défaut de la page 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.
Ok donc après de NOMBREUSES tentatives et en regardant d'autres tutoriels sur Internet… J'ai trouvé que CRÉER un nouveau modèle de page est mon problème. J'en crée un dans un éditeur de texte et j'essaie de le télécharger vers… où ? Je ne sais même pas où aller. Je n'arrive pas à trouver cet emplacement secret pour télécharger !
Tellement vrai, LaRocque ! Vous devez disposer d'un programme FTP et accéder au dossier de thèmes de votre site Web pour pouvoir y télécharger le fichier. Il n'y a actuellement AUCUN moyen 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. Soyez prudent, cependant!
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
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 !
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Ou simplement utiliser - pas besoin de charger l'intégralité de l'objet utilisateur.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
OK, donc 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 ?
Thanks a lot!
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 que le code de déconnexion fonctionne. . . 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?
On dirait que lorsque le code a été copié depuis votre navigateur, il a ajouté un tas d'espaces HTML, Ryan. Copiez le code dans le bloc-notes ou le bloc-notes, puis copiez-le dans votre modèle pour vous débarrasser de ces éléments.
Ok donc c'est exactement ce que je dois faire mais j'ai une question. S'il n'est pas abonné, comment puis-je faire apparaître une case "se connecter" ou "s'abonner" pour qu'il puisse accéder au contenu ?
Merci
Vous pouvez mettre un lien après la déclaration else où nous avons "Nous sommes désolés…" ci-dessus.
Merci pour le code. va rendre les gens fous contre moi, mais ils supposent de se connecter quand ils veulent quelque chose de ne pas permettre à tout le monde un accès gratuit pour rendre les fichiers faciles à trouver.
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 étant donné que wordpress le sert comme un cookie non sécurisé, il sera toujours servi si l'utilisateur revient à une partie du site qui n'est pas cryptée.
Ce n'est pas un hack, il utilise les fonctions de l'API WordPress - et ne contourne aucune sécurité ni n'accède directement à la session ou au cookie.
merci beaucoup utilisé l'instruction if pour faire un conteneur div si l'utilisateur est membre
ta solution était super