it-swarm.com.de

\ WP_User Object | Was ist der Unterschied zwischen {caps} und {allcaps}?

Beim Speichern des \WP_User-Objekts ist mir aufgefallen, dass es zwei Eigenschaften gibt, die in direktem Zusammenhang mit den Funktionen für einen bestimmten Benutzer stehen.

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

Ich habe sofort bemerkt, dass es für $user_object->caps weniger Array-Werte gibt als für $user_object->allcaps. Wahrscheinlich daher die Namenskonvention hier.

Ich beobachte derzeit nur EINEN Wert unter $user_object->caps. Ich habe diesem Benutzer auch eine benutzerdefinierte Rolle zugewiesen. Der eine Wert in $user_object->caps ist zufällig der Name meiner benutzerdefinierten Benutzerrolle. Dieser Wert ist jedoch auch in $user_object->allcaps aufgeführt.

  1. Was ist der Unterschied zwischen den beiden Eigenschaften $user_object->caps und $user_object->allcaps?
  2. Gibt es jemals eine Situation, in der die in $user_object->caps WOULDN'T aufgeführten Funktionen unter $user_object->allcaps zu finden sind?
  3. Muss ich $user_object->caps aus irgendeinem Grund verwenden oder kann ich mich darauf verlassen, $user_object->allcaps für einen bestimmten Benutzer zu überprüfen?
3
Michael Ecklund

Das Untersuchen der Kommentare für die Eigenschaften in der WP_User-Klasse zeigt, dass allcaps ist:

Alle Funktionen des Benutzers, einschließlich individueller und rollenbasierter Funktionen.

Und caps ist:

Die individuellen Fähigkeiten, die der Benutzer erhalten hat.

Aber Sie sollten die Eigenschaften wahrscheinlich nicht direkt verwenden. WP_User hat eine has_cap -Methode, die stattdessen verwendet werden sollte, da sie die entsprechenden Eigenschaften überprüft und das Ergebnis durch die entsprechenden Filter führt.

4
Jacob Peattie