Question

Je suis la fonction filtrage map_meta_cap (), qui est appelé à partir de $ user-> has_cap (qui est appelé à partir current_user_can ()). Je ne veux que mon filtre pour exécuter si l'utilisateur actuel est un administrateur, donc je besoin d'un conditionnel dans mon filtre qui vérifie leur rôle.

Je ne peux pas utiliser current_user_can (), parce que mon filtre invoque, ce qui provoque une boucle infinie.

Y at-il un moyen fiable de vérifier si une personne est un administrateur sans utiliser current_user_can ()?

Était-ce utile?

La solution

Vous pouvez vérifier la variable $current_user pour déterminer le rôle.

Je crois qu'il devrait être realiable après init (peut-être même sur init) pour un utilisateur connecté, un visiteur invité ne sera évidemment pas de données associées à lui encore (il sera vide / unset).

Vous pouvez également appeler get_currentuserinfo() pour alimenter le var $current_user, mais je l'ai personnellement jamais trouvé un besoin lors de l'appel $current_user après init (mais je suis sûr qu'il y aura des cas où vous avez besoin de l'appeler, il est donc lié ci-dessous à titre de référence).

http://codex.wordpress.org/Function_Reference/get_currentuserinfo

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top