Answers:
将此添加到您的主题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
而且唯一if !$role_object->has_cap('edit_theme_options')
编辑:WP 4.9的更新,并且仅隐藏编辑器的菜单项
如果您希望用户能够更改导航菜单,但不能更改外观下的其他选项,请使用:
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
刷新管理面板后,您可以注释掉整个代码,因为上面的代码将对数据库进行永久更改。
现在,您可以看到编辑器可见的所有选项。您可以像这样隐藏其他选项:
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');
hide_menu()
函数的最后三行是针对我的主题的主题。您可以通过在管理面板中单击要隐藏的子菜单来找到第二个参数。您的网址将类似于:example.com/wp-admin/themes.php? page= yiw_panel
因此,在此示例中,该remove_submenu_page()
函数的第二个参数将是yiw_panel
当我看到在管理菜单结构,似乎该nav-menus.php
链接是联系在一起的能力edit_theme_options
。您可以修改编辑者角色以包括此功能吗?这也将为他们提供编辑窗口小部件的选项,我不知道这是否有问题?所有菜单Ajax内容都受此功能限制,因此仅更改管理菜单功能以编辑菜单可能将不起作用。
安装插件“用户角色编辑器”-开启“ edit_theme_options”安装插件“管理”-为编辑器关闭“小部件”和“切换主题”;)
我发现,您的菜单将以这种方式工作:安装插件“ User Role Editor ”,在那里您也可以编辑编辑者角色的条件以及其他条件。打开edit_theme_options。但是现在:您将在“主题”,“小部件”下看到“菜单”-选项。对我来说:单击“菜单”(作为编辑器)后,我看不到填充的选项,而是空白。因此,我将停用插件“用户角色编辑器”,并正确显示“菜单”的填充选项。请注意,停用插件“用户角色编辑器”仍然是激活编辑器的条件!对我有好处,也许对您也有帮助