web-dev-qa-db-fra.com

\ WP_User Object | Quelle est la différence entre {caps} et {allcaps}?

Lors du vidage de l'objet \WP_User, j'ai remarqué qu'il existe deux propriétés directement liées aux fonctionnalités d'un utilisateur particulier.

  1. $user_object->caps
  2. $user_object->allcaps

J'ai tout de suite remarqué qu'il y avait moins de valeurs de tableau pour $user_object->caps que dans $user_object->allcaps. Probablement d'où la convention de nommage ici.

Actuellement, je n’observe qu’UNE valeur sous $user_object->caps. J'ai également un rôle personnalisé attribué à cet utilisateur. La valeur unique dans $user_object->caps se trouve être le nom de mon rôle d'utilisateur personnalisé. Toutefois, cette même valeur est également répertoriée dans $user_object->allcaps.

  1. Quelle est la différence entre les deux propriétés $user_object->caps et $user_object->allcaps?
  2. Existe-t-il une situation dans laquelle les fonctionnalités répertoriées dans $user_object->caps WOULDN'T se trouvent sous $user_object->allcaps?
  3. Existe-t-il une raison pour laquelle je devrais utiliser $user_object->caps ou puis-je me fier à la vérification de $user_object->allcaps pour un utilisateur particulier?
3
Michael Ecklund

L'examen des commentaires pour les propriétés de la classe WP_User révèle que allcaps est:

Toutes les fonctionnalités dont dispose l'utilisateur, y compris les capacités individuelles et les rôles.

Et caps est:

Les capacités individuelles de l'utilisateur ont été données.

Mais vous ne devriez probablement pas utiliser les propriétés directement. WP_User a une méthode has_cap qui doit être utilisée à la place, car elle vérifie les propriétés appropriées et exécute le résultat à travers les filtres appropriés.

4
Jacob Peattie