web-dev-qa-db-fra.com

Comment vérifier le rôle de l'utilisateur sans utiliser current_user_can ()

Je filtre la fonction map_meta_cap (), appelée à partir de $ user-> has_cap (appelée à partir de current_user_can ()). Je veux que mon filtre ne s'exécute que si l'utilisateur actuel est un administrateur. J'ai donc besoin d'un conditionnel dans mon filtre pour vérifier son rôle.

Je ne peux pas utiliser current_user_can (), car cela appelle mon filtre, ce qui provoque une boucle infinie.

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

4
jessica

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

Je pense que cela devrait être réalisable après init (peut-être même sur init) pour un utilisateur connecté, un visiteur invité n'aura évidemment aucune donnée associée à lui pour l'instant (donc ce sera vide/non défini).

Vous pouvez également appeler get_currentuserinfo() pour renseigner la $current_user var, mais je n’ai personnellement jamais trouvé le besoin d’appeler $current_user après init (mais je suis sûr qu’il peut arriver que vous deviez l’appeler, c’est donc lié ci-dessous pour référence). .

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

5
t31os