On m'a demandé de créer un WordPress qui limite l'accès aux publications avec un type de publication personnalisé en fonction du niveau des utilisateurs connectés. Il y aura un certain nombre de rôles d'utilisateur prédéfinis et ils souhaiteraient choisir les niveaux pouvant afficher chaque message au moment de sa rédaction.
Quelle est la meilleure façon de procéder?
Il y a deux façons de faire ça. Presque tous les plugins de gestion d'appartenance décents vous permettront de limiter le contenu à un rôle d'utilisateur donné et les plugins tels que Role Scoper sont encore plus flexibles. Pour une solution davantage basée sur le code, vous pouvez ajouter une variante des éléments suivants aux fichiers de modèle de thème souhaité, le cas échéant:
<?php if(current_user_can('some_capability') ); ?>
et remplacer some_capability par la capacité prédéfinie ou personnalisée disponible pour le rôle le plus bas souhaité. Par exemple, pour limiter aux Editors et Admins (sans aucune personnalisation):
<?php if(current_user_can('delete_others_posts') ); ?>
Ajouter cette fonctionnalité à un message donné dans le type de message personnalisé est un peu plus difficile. Vous vous impliqueriez en ajoutant des actions et des fonctions similaires à ce didacticiel de Smashing Magazine afin de limiter les publications par nom d'utilisateur. Tout ce que vous avez à faire est de passer d’une liste d’utilisateurs à une liste de rôles ou de fonctionnalités. Encore une fois, il existe un monde de plugins qui le font déjà ... si vos besoins ne sont pas complexes, vous ne voudrez peut-être pas réinventer la roue.