Ich möchte eine benutzerdefinierte Funktion für den Zugriff auf die Benutzeroberfläche meines Plugins erstellen.
- Sollte das Plugin es schaffen, diese Funktion bei der Aktivierung allen Administratorkonten hinzuzufügen?
- Wenn ja: Schafft es WordPress, allen Administratoren von Subblogs und Superadministratoren in Installationen mit mehreren Standorten die Funktionen hinzuzufügen, oder muss diese Funktion vom Plug-in übernommen werden?
Antworten:
Entfernen Sie, was Sie hinzufügen
Stellen Sie zunächst sicher, dass alles, was Sie bei der Aktivierung hinzufügen, auch bei der Deinstallation entfernt wird . Ich habe ein kurzes Tutorial mit Beispielcode für Sie.
Test mit einem kleinen Plugin:
Ich weiß wirklich nicht viel über MU, aber soweit ich das beurteilen kann, ist das Rollenobjekt in allen Blogs global. Probieren Sie einfach dieses kleine Plugin aus und sehen Sie, was Sie bekommen können:
Funktionen hinzufügen
Hinweis: Sie können die Funktion der Rolle hinzufügen, ohne Zugriff darauf zu gewähren. Setzen Sie einfach das zweite Argument
$grant = false;
. Dies ermöglicht die Whitelist einzelner Benutzer durch einfaches Hinzufügen der Obergrenze einschließlich des letzten Arguments als wahr.quelle
Für ein Plugin bin auf mich zur Zeit wollte ich gewähren / beschränken Sie den Zugriff auf die Plugin - Einstellungen (dh die nach Admin - Menü Seiten) auf einer pro Rolle Basis.
Deshalb musste ich ein neues Plugin-spezifische hinzufügen
capability
zu deruser roles
.Leider scheint die Antwort von kaiser nicht mehr zu funktionieren, daher habe ich einige Zeit damit verbracht, herauszufinden, wie die oben genannte Funktionalität berücksichtigt werden kann.
Der Stundenplan
Bevor ich meinen Code mit Ihnen teile, geht es um Folgendes im Klartext:
THE_NEW_CAP
zu Rollen mit einer bestimmten integrierten Funktion hinzuBUILT_IN_CAP
(in meinem Fall:)edit_pages
.Der Code
Und hier ist die obige Liste in Code umgewandelt:
»Einrichten
" Es benutzen
»Aufräumen
Hinweis: Bitte verwenden Sie keine Großbuchstaben. Dies dient nur der Lesbarkeit.
quelle
get_editable_roles()
zum Abrufen von Rollen verwenden, die Sie bearbeiten möchten. Sie werden sonst Plugins brechen.Das funktioniert bei mir:
quelle