Benutzerrollen: Wie versteckt man ein Plugin in WP-Admin?

Ich möchte in der Lage sein, einige Plugins im WP-Admin für Benutzer auszublenden, die keine bestimmte Benutzerrolle haben, da ich nicht möchte, dass diese Benutzer die Einstellungen bearbeiten können.

Muss ich das pro Plug-in machen?

Solutions Collecting From Web of "Benutzerrollen: Wie versteckt man ein Plugin in WP-Admin?"

wie s_ha_dum in den Kommentaren gesagt hat, könntest du etwas tun remove_menu_page Das Problem dabei ist jedoch, dass es den Benutzer nicht daran hindert, das Plugin zu bearbeiten, wenn er die URL kennt.

Aus dem Kodex:

Das Entfernen eines Menüs ersetzt nicht die Notwendigkeit, die Berechtigungen eines Benutzers entsprechend zu filtern.

Wenn ich auf dieses Problem stoße, neige ich dazu, das Member-Plugin von Justin Tadlock zu verwenden, mit dem ich functionen für einzelne Rollen zuweisen kann. Außerdem kann ich benutzerdefinierte Rollen festlegen.

Mein typischer Flow besteht darin, eine neue Rolle des “Eigentümers” oder “Designers” einzurichten, die ihnen gerade genug Rechte gibt, um das zu tun, was sie tun müssen.

Muss ich das pro Plug-in machen?

Vielleicht hängt es von den Plugins ab, die Sie verwenden. Jeder Autor neigt dazu, anders damit umzugehen. Einige der üblichen Fähigkeiten, mit denen die Plugins verbunden sind, sind manage_options , update_core und manage_themes . Mit anderen Worten, manchmal, wenn Sie manage_options deaktivieren, manage_options Sie mehrere Plugins gleichzeitig deaktiviert. Es gibt auch einige Fälle (dh Schwerkraftformen), in denen der Autor des Plugins seine eigenen Fähigkeiten schafft, was oft der beste Fall ist.

Verwenden remove_menu_pages abschließend remove_menu_pages als schnelle und einfache Lösung, wenn es nicht darauf ankommt, ob der Benutzer die Seite findet.

Verwenden Sie das Member-Plugin (oder Ähnliches), um die functionen zu bearbeiten / erstellen Sie eine neue Rolle, wenn Sie den Benutzer sperren müssen.

Bonus Sie können functionen einem Benutzer manuell zuweisen, indem Sie in der Datei functions.php Folgendes verwenden:

  $user = new WP_User( $user_id ); $user->add_cap( 'manage_options');