2 Stimmen

Wordpress - Wie kann ich Autoren/Mitarbeitern erlauben, nur eine bestimmte Optionsseite zu bearbeiten, aber keine anderen?

Heute habe ich ein einfaches WordPress-Plugin erstellt, das im Wesentlichen eine Optionsseite ist. Es basiert auf den Anweisungen unter diesem Link: http://codex.wordpress.org/Creating_Options_Pages (am Ende dieser Seite gibt es Beispielscode, den ich als Grundlage für mein Plugin verwendet habe).

Grundsätzlich möchte ich Autoren/Mitarbeitern ermöglichen, ein neues Registerkarte in ihrem Admin-Menü zu sehen, die nach dem Klick den Benutzer zu einer Seite führt, auf der er/sie Text schreiben und "Änderungen speichern" kann (die dann diesen Text in einer Datenbank speichert). Ich möchte später in der Lage sein, diesen Text über etwas wie get_option('some_option') abzurufen.

Allerdings können Autoren/Mitarbeiter keine "manage_options" und deshalb konnten sie nicht die Optionen auf der neuen Menüregisterkarte bearbeiten, die ich erstellt habe. Ich habe ein Plugin namens "User Role Editor" installiert, um Autoren/Mitarbeitern die Verwaltung von Optionen zu ermöglichen, jedoch bringt dies das "Einstellungen"-Register in ihr Admin-Menü und ermöglicht es ihnen, alle Optionen zu verwalten.

Wie kann ich Autoren/Mitarbeitern nur das Verwalten von Optionen für das von mir erstellte Plugin erlauben und nichts anderes? Kann ich die Berechtigungsbeschränkungen für das von mir erstellte Plugin aufheben? Jede Unterstützung würde geschätzt werden! (Die Plugin-Entwicklung verlief reibungslos, aber jetzt stecke ich fest).

Mein Code ist weitgehend analog zum Beispiel, das unter dem oben genannten Link zu finden ist:

  Plugin Name

        Neuer Option Name

        Einige Andere Option

        Optionen, etc.

2voto

killajoule Punkte 3252

Ich habe die Lösung gefunden:

function twentyeleven_option_page_capability( $capability ) {
    return 'edit_posts';
}
add_filter( 'option_page_capability_baw-settings-group', 'twentyeleven_option_page_capability' );

Ich habe das direkt nach der Funktion hinzugefügt, die die Einstellungen registriert (im obigen Code wäre das die Funktion register_mysettings())

Grundsätzlich ermöglicht die add_filter-Funktion, dass die Optionen der Gruppe baw-settings-group (die in der register_mysettings-Funktion durch die register_setting-Funktion deklariert wird) von Benutzern geändert werden können, die edit_posts können (die Funktion twentyeleven_option_page_capability wird add_filter als zweites Argument übergeben, das 'edit_posts' zurückgibt).

Quelle: http://wordpress.org/support/topic/wordpress-settings-api-cheatin-uh-error?replies=0

0voto

NoBugs Punkte 8840

Sie können dies über Benutzerberechtigungen überprüfen:

if (current_user_can('Erlaubnis')) {
... do stuff
}

Wenn Sie also einen Abschnitt nur für Redakteure/Administratoren wünschen, könnten Sie beispielsweise folgendes verwenden:

function register_mysettings() {
  if (current_user_can('edit_posts') {
    //unsere Einstellungen registrieren...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X