WordPress: Menü bearbeiten für Redakteure

Menü bearbeiten für WordPress-Redakteure

Üblicherweise bekommen Kunden von mir vollen Administrations-Zugang zu ihrer eigenen Website. Alles andere entspricht nicht meinen Business-Grundsätzen.

Aber ab und zu bekommen nicht alle Mitarbeiter des Kunden den vollen Zugriff – diese können als WordPress-Redakteure zwar Inhalte bearbeiten, aber keine Plugins installieren oder Einstellungen ändern.

Ein Problem, das sich dann aber ergibt: WordPress-User mit der Rolle “Redakteur” können das Menü nicht bearbeiten

Inhalt

Fehlende Rechte für Redakteure

WordPress enthält ein ausgeklügeltes Berechtigungs-System (wovon die meisten “Entwickler” von Plugins leider nichts wissen – aber das ist Thema eines anderen Blog-Beitrages!).

Und standardmäßig hat die Rolle “Redakteur” keinen Zugriff auf das “Design”-Menü:

Das Design-Menü von WordPress
Das Design-Menü von WordPress – für Administratoren

Es fehlt schlicht die Berechtigung ‘edit_theme_options’.

Doch Vorsicht – mit diesen Rechten können Redakteure auf das gesamte Design-Menü zugreifen. Also auch das Theme wechseln oder im Customizer Einstellungen ändern!

Angebote schreiben in 10 Minuten - mit der ultimativen Angebotsvorlage für Web-Designer, Webprogrammierer und Online-Marketer

Wasserdichte Angebote schreiben in nur 10 Minuten?

Hol dir die ultimative Angebotsvorlage für Webdesigner, Web-Programmierer und Online-Marketer.

Lerne 7 Tricks, wie andere Webdesigner arbeiten und wirklich Geld verdienen

7 Tricks, wie andere Web-Professionals arbeiten und wirklich Geld verdienen

Das eBook für Web-Designer, Grafiker und Online-Marketer.

Hast du es satt, im Internet stundenlang nach Lösungen zu suchen?

Die Lösung

Um Redakteuren deiner Website die Rechte zu geben das Menü zu bearbeiten, aber sonst keine Einstellungen vornehmen zu können, füge dieses Code-Snippet in die functions.php deines Child-Themes ein:

/**
 * Allow editors to see access the Menus page under Appearance but hide other options
 * Note that users who know the correct path to the hidden options can still access them
 */
add_action('admin_menu', function() {
 $user = wp_get_current_user();

 // Check if the current user is an Editor - or bail
 if(!in_array( 'editor', (array) $user->roles )) return;

 // They're an editor, so grant the edit_theme_options capability if they don't have it
 if ( !current_user_can( 'edit_theme_options' ) ) {
  $role_object = get_role( 'editor' );
  $role_object->add_cap( 'edit_theme_options' );
 }

 // Hide the Themes page
 remove_submenu_page( 'themes.php', 'themes.php' );

 // Hide the Widgets page
 remove_submenu_page( 'themes.php', 'widgets.php' );

 // Hide the Customize page
 remove_submenu_page( 'themes.php', 'customize.php' );

 // Remove Customize from the Appearance submenu
 global $submenu;
 unset($submenu['themes.php'][6]);
});

Danach sehen Redakteure den entsprechenden Menü-Eintrag und können die Menüs bearbeiten.

Ansicht für Redakteure
Ansicht für Redakteure

Funktioniert dieses Code-Snippet noch?

Alle Code-Snippets auf dieser Website sind bei meiner eigenen Website oder auf der Website eines Kunden im Einsatz. Doch WordPress entwickelt sich ständig weiter.

Daher kann es sein, dass dieses Code-Snippet nicht mehr funktioniert oder angepasst werden muss.

Hinterlasse mir in diesem Fall gerne einen Kommentar, und ich werde das Code-Snippet anpassen.

Lass uns einfach Websites bauen,

Über den Autor

Michael
Hi, ich bin Michael Baierl und bin WordPress-Profi aus Wien. Ich arbeite mit Web-Designern, die vor der Herausforderung stehen, an die richtigen Kunden zu kommen. In meiner WordPress-Community – den Website Heroes – finden Web-Designer alles, um großartige Websites für ihre Kunden zu erstellen und finanziell erfolgreich zu sein: regelmäßige Weiterbildung, Austausch, Feedback, schnelle Problemlösung und Co-Working.

2 Antworten

  1. Hallo,
    ich würde gern Redakteuren meiner Website die Rechte zu geben das Menü zu bearbeiten, aber sonst keine Einstellungen vornehmen zu können, füge dieses Code-Snippet in die functions.php deines Child-Themes ein:
    Wie und wo füge ich den Code ein. Kann man dazu auch mal telefonieren?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Projektanfrage

Wobei kann ich dich unterstützen?