Ich möchte meinen Redakteuren die Möglichkeit geben, das Menü zu ändern. Ist dies möglich?
Die Registerkarte "Darstellung" scheint überhaupt keine Option zu sein. Kann ich das auch tun?
Ich möchte meinen Redakteuren die Möglichkeit geben, das Menü zu ändern. Ist dies möglich?
Die Registerkarte "Darstellung" scheint überhaupt keine Option zu sein. Kann ich das auch tun?
Antworten:
füge dies zu deinem Thema hinzu functions.php
:
// add editor the privilege to edit theme
// get the the role object
$role_object = get_role( 'editor' );
// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
WP_Role
admin_init
und nurif !$role_object->has_cap('edit_theme_options')
BEARBEITEN: Update für WP 4.9 und nur das Ausblenden von Menüpunkten für den Editor
Wenn Sie möchten, dass Ihre Benutzer das Navigationsmenü ändern können, aber nicht die anderen angezeigten Optionen: Verwenden Sie diese Option
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Sie können den gesamten Code auskommentieren, nachdem Sie Ihr Admin-Panel aktualisiert haben, da der obige Code dauerhafte Änderungen an der Datenbank vornimmt.
Sie haben jetzt alle Optionen im Erscheinungsbild für die Redakteure sichtbar. Sie können die anderen Optionen wie folgt ausblenden:
function hide_menu() {
if (current_user_can('editor')) {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu
// these are theme-specific. Can have other names or simply not exist in your current theme.
remove_submenu_page( 'themes.php', 'yiw_panel' );
remove_submenu_page( 'themes.php', 'custom-header' );
remove_submenu_page( 'themes.php', 'custom-background' );
}
}
add_action('admin_head', 'hide_menu');
Die letzten 3 Zeilen in der hide_menu()
Funktion sind themenspezifisch für mein Thema. Sie finden den zweiten Parameter, indem Sie im Admin-Bereich auf das Untermenü klicken, das Sie ausblenden möchten. Ihre URL lautet dann etwa: example.com/wp-admin/themes.php?page=yiw_panel
In diesem Beispiel ist also der zweite Parameter für die remove_submenu_page()
Funktionyiw_panel
Wenn ich mir die Admin-Menüstruktur anschaue, scheint der nav-menus.php
Link an die Funktionalität gebunden zu seinedit_theme_options
. Können Sie die Editorrolle ändern, um diese Funktion einzuschließen? Dies würde ihnen auch die Möglichkeit geben, Widgets zu bearbeiten . Ich weiß nicht, ob dies ein Problem ist. Das gesamte Ajax-Menü wird durch diese Funktion eingeschränkt, sodass es wahrscheinlich nicht funktioniert, nur die Admin-Menüfunktion zum Bearbeiten von Menüs zu ändern.
installiere das Plugin "User Role Editor" - schalte edit_theme_options ein - installiere das Plugin Adminimize - schalte "Widgets" und "Switch Theme" für Editoren aus;)
Ich habe festgestellt, dass Ihr Menü so funktioniert: Installieren Sie das Plugin " User Role Editor " und dort können Sie die Bedingung für die Editorrolle und andere auch bearbeiten. Schalten Sie edit_theme_options ein. Aber jetzt: Sie sehen "Menü" -Option unter "Themen", "Widgets". Für mich: Nach Klick auf "Menü" (als Editor) sehe ich keine ausgefüllten Optionen sondern leere. Daher deaktiviere ich das Plugin "User Role Editor" und die ausgefüllten Optionen für "Menü" werden korrekt angezeigt. Beachten Sie, dass das Deaktivieren des Plugins "User Role Editor" weiterhin Bedingungen für den aktiven Editor sind! Gut für mich, vielleicht hilft es dir auch