Beim Schreiben von WordPress-Plugins müssen häufig Optionen eingerichtet werden, für die Rollen auf der Site Zugriff auf bestimmte Funktionen oder Inhalte haben. Dazu muss ein Plug-in-Entwickler die Liste der Rollen abrufen, die auf der Site vorhanden sind, um sie in der Option zu verwenden. Da benutzerdefinierte Rollen erstellt werden können, können wir nicht davon ausgehen, dass nur die Standardrollen verfügbar sind.
Was ist der beste Weg, um die Liste abzurufen?
security
users
capabilities
user-roles
Jerclarke
quelle
quelle
Antworten:
Rollen werden in der globalen Variablen gespeichert
$wp_roles
.Die ideale Funktion kommt
get_editable_roles()
von/wp-admin/includes/user.php
Der "bearbeitbare" Teil ist, weil er anderen Plugins die Möglichkeit bietet, die Liste zu filtern, falls eine andere Person als der Administrator die
'edit_users'
Berechtigung hat (und daher "admin" aus der Liste entfernt werden muss, damit sich der Benutzer selbst zum Administrator machen kann). Rollenverwaltungs-Plug-ins, die zum Erstellen benutzerdefinierter Rollen verwendet werden, verwenden diesen Filter. Ansonsten ist diese Funktion im Wesentlichenget_roles()
(was nicht existiert) .Vermutlich wird Ihr Plugin die betreffende Einstellungsseite nur für Personen anbieten, die über Administratorrechte verfügen
'manage_options'
und im Grunde genommen über Administratorrechte für alle Rollen verfügen. Der Filter sollte Sie also nicht beeinträchtigen.Dort finden
wp_dropdown_roles()
Sie auch Rollen als<option>
Felder für eine<select>
Liste (obwohl Ankreuzfelder in vielen Szenarien, in denen Sie auswählen, wer Zugriff auf etwas hat, wahrscheinlich besser funktionieren) .quelle
Versuche dies:
PS heh, diese Erklärung verpasst und mir zu schnell geantwortet :)
quelle
So finden Sie die Liste der Rollen ohne Plugins oder Funktionen: http://screencast.com/t/uaWsGLAR3Sh
quelle
Für diejenigen, die mehrsprachige Website haben, funktionieren
gibt ein lokalisiertes Array wie folgt zurück (Rollennamen sind in slowakischer Sprache):
quelle
Auf diese Weise erhalten Sie ein Array aller vorhandenen Benutzerrollen und der Funktionen für jede Rolle in WordPress. Wenn Sie es nicht auf dem Bildschirm ausdrucken möchten, lassen Sie die letzte Zeile aus. Die Variable $ rolls in Zeile 2 enthält eine Reihe von Benutzern und Funktionen, sodass Sie sie nach Bedarf verwenden können. Unten finden Sie ein Beispiel für das zurückgegebene Array.
quelle