add_menu_page und capability

  • Hallo,

    Die Beschreibung von add_menu_page (http://codex.wordpress.org/Adding_Administration_Menus) scheint mir etwas wurmstichig.

    Der Parameter capability wird so beschrieben:

    Zitat

    capability

    The minimum capability required to display and use this menu page.

    Müsste da nicht eher "minimum role" stehen, und würde es selbst dann keinen Sinn ergeben, weil Rollen bei WP nicht hierarchisch angelegt sind?

    Mein Problem ist, für die Funktion add_menu_page verschiedene Rollen zu berechtigen, dass also Autoren ebenso wie Admins die angelegten Seiten sehen können! Trage ich lediglich "author" als entsprechenden Parameter ein, können auch wirklich nur Autoren das Plugin benutzen.

    Blickt jemand durch, wie das geht?


    Viele Grüße,

    Michael

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wenn Du Rollen betrachtest (Codex), siehst Du auch die "Capabilities". Diese sind skalierbar. Du kannst also Berechtigungen für Rollen vergeben oder nehmen. Das einzige, was nicht im Codex dokumentiert ist, bzw. nach wie vor keine vernünftige Lösung hat, sind die Rollen selbst. Diese sind nicht "einfach" durch benutzerdefinierte zu ergänzen, bzw. in andere Systeme zu übertragen.

    Bsp zur Ergänzung der Rolle "Redakteur" mit der Berechtigung User zu bearbeiten:

    Code
    $role = get_role('editor');
        if ($role !== NULL) {
           $role->add_cap('edit_users');
           $role->add_cap('create_users');
           $role->add_cap('delete_users');
        }
  • Ich will keine Berechtigungen bearbeiten.

    Ich möchte mit der Funktion add_menu_page im Admin-Paneel eine Seite hinzufügen, die nur für Autoren ("author") und Admins ("administrator") zugänglich ist.

    Im Moment geht nur entweder-oder. Die Funktion zweimal aufzurufen, mit jeweils anderem Parameter, führt ebenfalls zu nichts.

  • Na bitte gerne.

    Es wird eine "Capability" erwartet, also zB "read". D.h. jeder der "read" als "Capability" in seiner "Role" hat, hat auch Zugriff darauf. Also nur im Codex die "Capabilities" ansehen und los geht's. Andere Möglichkeit ist immer noch mit "if(current_user_can('erwartete_min_capability')) { add_menu_page( usw..." registrieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!