Ich muss die mit einem Benutzer verknüpfte Rolle abrufen - nicht den "derzeit angemeldeten Benutzer".
Ich benutze Buddypress (das sollte für die Art dieser Frage nicht von Bedeutung sein) und bin auf dem bp_members()
Laufenden.
Wie kann ich die Rolle des Benutzers abrufen, über den ich zu einem bestimmten Zeitpunkt in der Schleife berichte?
Vielen Dank.
user-roles
frank13
quelle
quelle
Wenn
bp_members
ein Array vonWP_User
Objekten zurückgegeben wird, sollte jedes über eine Eigenschaft verfügenroles
, die ein Array der Benutzerrollen enthält.Andernfalls können Sie
get_user_meta
für den Schlüssel verwendenwp_capabilities
, der ein Array vonrole => capability
Paaren zurückgibt:quelle
$user->ID
Rolle des. Nur eine Rolle, da keinem Benutzer in unserem System mehr als eine Rolle zugewiesen ist.$roles[0]
, erledigt.Soweit ich weiß, hat es sich wahrscheinlich im Laufe der Jahre geändert, jetzt ist es nicht mehr so
'wp_capabilities'
. Ich habe mir die wichtigsten WP-Dateien angesehen und eine neue Lösung dafür gefunden. Hier ist der Code, den ich jetzt benutze:$cap
dann kommt als assoziatives Array zum Beispiel:oder
In Ihrem Fall sollten Sie also wahrscheinlich die Schlüssel des Arrays erhalten:
und dann hol alles daraus. Ich musste sehen, ob der Benutzer die Administratorrolle hat, also überprüfte ich:
Ich hatte eine Benutzer-ID, nicht das gesamte
WP_User
Objekt, und ich wollte keine Lösung verwenden, die dasuser
Objekt erstellen würde . Wie ich überprüft habe,get_user_meta
geht es direkt zur Datenbank, um nach diesem genauen Parameter zu suchen. Dies sollte also die schnellste und ressourcenschonendste Route sein.quelle