WordPress: Menü bearbeiten für 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

WordPress-Menü bearbeiten für Redakteure

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?

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,

Michael

Picture of Michael
Hi, ich bin Michael Baierl und bin WordPress-Programmierer aus Wien. 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. Schau gleich vorbei.

Inhalt

Kommentare

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

Nie wieder alleine - werde Teil der Website Heroes und bilde dich laufend weiter.

Weiterbildung und Sofort-Support für angestellte Website-Helden.

Exklusiv für Agenturen, Grafiker:innen und Designer:innen: WordPress-Programmierung.

Dein Technischer Partner für deine Website.

Schreibe wasserdichte Angebote in nur 10 Minuten.

Raus aus dem Projektgeschäft - schaffe dir langfristig ein passives Einkommen.