Ich habe eine WordPress-Site für einen Kunden eingerichtet. Der Client hat die Rolle des Editors, ich habe jedoch das Members-Plugin installiert und dem Client die Möglichkeit gegeben, dem WP-Administrator neue Benutzer hinzuzufügen. Das funktioniert gut.
Die Frage, die ich habe, ist, dass ich möchte, dass der Kunde die Möglichkeit hat, einen neuen Benutzer wie in den Rollen eines Mitwirkenden, Abonnenten, Herausgebers und Autors, aber NICHT eines Administrators, zu erstellen. Die neuen Benutzer, die der Client erstellt, sollten nicht die Administratorrolle haben. Ist es möglich, diese Option irgendwie zu verbergen?
Vielen Dank, Vayu
Antworten:
Das ist eigentlich ganz einfach. Sie müssen das
map_meta_caps
Erstellen / Bearbeiten von Administratoren durch Editoren filtern und verhindern und die Administratorrolle aus dem Array "Bearbeitbare Rollen" entfernen. Diese Klasse würde es als Plugin oder in der Datei functions.php Ihres Themas tun:BEARBEITEN
Ok, also habe ich mir angesehen, warum die Löschung durch den Benutzer passiert. Es sieht so aus, als würde delete_user etwas anders behandelt als edit_user. Ich habe die map_meta_cap-Methode geändert, um dies zu umgehen. Ich habe 3.0.3 getestet und dies hindert nur Administratoren daran, einen Administrator zu löschen, zu bearbeiten oder zu erstellen.
BEARBEITEN 2
Ich habe den Code aktualisiert, um die Antwort von @ bugnumber9 unten wiederzugeben. Bitte gib dieser Antwort eine positive Bewertung!
quelle
Obwohl dieser Thread ~ 7 Jahre alt ist, kann er leicht gegoogelt werden und bietet dennoch eine funktionierende Lösung. Ich meine den Code von @John P Bloch.
Das heißt, unter PHP 7 erzeugt es einen nicht kritischen Fehler (PHP veraltet) wie folgt:
Um dies zu beheben, ersetzen Sie einfach dieses Stück:
mit diesem:
Dies wird das Problem beheben.
quelle
Ich suchte nach einer Lösung, bei der der Editor nur Menüs bearbeiten UND Benutzer erstellen / bearbeiten konnte, ohne ein Plugin zu benötigen. Also habe ich es für diejenigen gemacht, die interessiert sind.
quelle
@ John P Blochs Lösung funktioniert immer noch einwandfrei, aber ich dachte, ich würde meinen kleinen Filter auch für 'map_meta_cap' einsetzen. Nur ein bisschen kürzer und sauberer, zumindest für meine Augen;)
quelle