Wie würden wir den Zugriff auf den WP-Administrationsbereich auf alle Benutzer mit Ausnahme von Administratoren beschränken?
Die Benutzer unserer Website haben ihre eigenen Profilseiten, die alle Funktionen erfüllen, die sie benötigen.
Daher sollte der Admin für alle außer Administratoren gesperrt sein.
Wie geht das?
Antworten:
Wir können die
admin_init
Aktion verfolgen und überprüfen, ob der Benutzer ein Administrator ist, indem wir diecurrent_user_can()
Funktion verwenden, um festzustellen, ob der aktuelle Benutzer dies kannmanage_options
, was nur ein Administrator kann.Dieser Code zeigt beim Einfügen in die Datei functions.php eine Meldung an, wenn ein Nicht-Administrator versucht, auf das Dashboard zuzugreifen:
Wenn Sie möchten, können Sie die Benutzerfreundlichkeit verbessern, indem Sie den Benutzer stattdessen auf die Startseite umleiten:
Wenn Sie den Benutzer zu seiner Profilseite umleiten möchten, ersetzen Sie
home_url()
den obigen Code durch den Link.quelle
manage_options
Funktion durch @cybmeta ist die akzeptierte Methode für die Prüfung eines Administratorbenutzers. Sogar Mark Jaquith sagt somanage_options
, dass dies nur "Administratoren" können und dass dies nicht der Fall ist,manage_options
es sich um eine Funktion handelt, die aus der Administratorrolle entfernt oder anderen Benutzerrollen zugewiesen werden kann. Wichtig ist, dass Sie wissen, was Sie tun möchten, und den besten Weg wählen. Siehe meine Antwort, ich erkläre das.manage_options
mitmanage_network
. Letzteres würde das Dashboard auch für standardmäßige "Site-Administratoren" deaktivieren, den Zugriff jedoch für Super-Administratoren (Netzwerkadministratoren) freigeben.Sie könnten ein Plugin schreiben und sich einbinden
admin_init
.Der Codex enthält ein Beispiel für die gesuchte Funktion.
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Example:_Access_control
quelle
Einige der gegebenen Antworten können in den meisten Situationen in Ordnung sein, aber ich denke, keine von ihnen garantiert, genau das zu tun, was gefragt wird, weil keine der Antworten Benutzerrollen prüft, sie Fähigkeiten überprüfen und Fähigkeiten können Formularrollen zugewiesen und entfernt werden. Um eine genaue Antwort zu geben, müssen die Benutzerrollen überprüft werden, nicht die Funktionen:
Wenn Sie überprüfen möchten, ob der Benutzer über die Funktion "manage_options" verfügt, können Sie dies tun. Tatsächlich ist es in den meisten Fällen die beste Option. Obwohl diese Funktion standardmäßig Administratorbenutzern zugeordnet ist, kann sie aus der Administratorrolle entfernt oder anderen Benutzerrollen zugewiesen werden. Aus diesem Grund ist es in den meisten Fällen besser, zu überprüfen, was der Benutzer kann oder nicht, als die Benutzerrolle zu überprüfen. In den meisten Fällen sollte die Überprüfung der Fähigkeiten der gewählte Weg sein, aber Sie müssen dieses Konzept klarstellen und die beste Option für Ihre Situation und Ihren Zweck auswählen:
quelle
Probieren Sie das Adminimize- Plugin aus.
Damit können Sie die Dinge ziemlich gut abschließen.
Sie können auch versuchen, den Zugriff über die htaccess-Datei einzurichten
quelle
quelle
'administrator'
ist keine Fähigkeit. Es funktioniert nur, um die Abwärtskompatibilität aufrechtzuerhalten. Suchen Sie nach'update_core'
oder nach anderen Administratorfunktionen.Setzen Sie diese Zeilen in Ihre
functions.php
quelle
Versuchen Sie dies, niemals durch Fehler gegenüber einem Endbenutzer. Gegen eine gute UX. Dieser Code leitet sie zu Home weiter.
quelle
Ich würde WP Frontend verwenden und es für jeden einstellen, der Administratoren erwartet.
quelle