Comment restreindrions-nous l'accès à la zone d'administration de WP à tous les utilisateurs à l'exception des administrateurs?
Les utilisateurs de notre site ont leurs propres pages de profil qui font toutes les fonctions dont ils ont besoin.
L'administrateur doit donc être interdit à tous sauf aux administrateurs.
Comment faire ça?
Réponses:
Nous pouvons nous accrocher à l'
admin_init
action et vérifier si l'utilisateur est un administrateur en utilisant lacurrent_user_can()
fonction pour voir si l'utilisateur actuel le peutmanage_options
, ce que seul un administrateur peut faire.Ce code, une fois collé dans votre fichier functions.php, affichera un message lorsqu'un non-administrateur essaie d'accéder au tableau de bord:
Si vous préférez, vous pouvez offrir une meilleure expérience utilisateur en redirigeant l'utilisateur vers la page d'accueil à la place:
Si vous souhaitez rediriger l'utilisateur vers sa page de profil, remplacez
home_url()
le code ci-dessus par le lien.la source
manage_options
capacité est le moyen accepté pour vérifier un utilisateur administrateur. Même Mark Jaquith le ditmanage_options
que quelque chose que seuls les «administrateurs» peuvent faire et que ce n'est pas vrai,manage_options
est une capacité et peut être supprimé du rôle d'administrateur ou attribué à d'autres rôles d'utilisateur. L'important est de savoir ce que vous voulez faire et de choisir la meilleure façon. Voir ma réponse, je l'explique.manage_options
parmanage_network
. Ce dernier désactiverait également le tableau de bord pour les «administrateurs de site» par défaut, mais laisserait l'accès disponible aux super administrateurs (administrateurs réseau).Vous pouvez écrire un plugin et y accrocher
admin_init
.Le codex donne en fait un exemple avec la fonctionnalité que vous recherchez.
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Example:_Access_control
la source
Certaines des réponses données peuvent être correctes dans la plupart des situations, mais je pense qu'aucune d'entre elles ne garantit de faire exactement ce qui est demandé car aucune des réponses ne vérifie les rôles des utilisateurs, elles vérifient que les capacités et les capacités peuvent être attribuées et supprimées des rôles de formulaire. Donc, pour donner une réponse exacte, les rôles d'utilisateur doivent être vérifiés, pas les capacités:
Si vous voulez vérifier que l'utilisateur a la capacité "manage_options", vous pouvez. En fait, c'est la meilleure option dans la plupart des cas. Bien que cette fonctionnalité soit associée par défaut aux utilisateurs administrateurs, elle peut être supprimée du rôle d'administrateur ou affectée à d'autres rôles d'utilisateur. C'est pourquoi, dans la plupart des cas, il est préférable de vérifier ce que l'utilisateur peut ou ne peut pas faire que de vérifier le rôle de l'utilisateur. Donc, dans la plupart des cas, la vérification des capacités doit être la méthode choisie, mais vous devez avoir ce concept clair et choisir la meilleure option pour votre situation et votre objectif:
la source
Essayez le plugin Adminimize .
Vous pouvez très bien verrouiller les choses avec ça.
Vous pouvez également essayer de configurer l'accès via le fichier htaccess
la source
la source
'administrator'
n'est pas une capacité. Cela fonctionne juste pour maintenir la compatibilité descendante. Vérifiez'update_core'
ou d'autres capacités d'administration.Mettez ces lignes dans votre
functions.php
la source
Essayez ceci, jamais par des erreurs face à un utilisateur final. Contre un bon UX. Ce code les redirige vers Home.
la source
J'utiliserais WP Frontend et le définirais pour tout le monde, attendez-vous aux administrateurs.
la source