问题描述
我想能够授予我的编辑权力来改变菜单,这可以做到吗?
外观选项卡根本看起来不是一个选项,我可以这样做吗?
最佳解决方案
添加到您的主题的 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' );
次佳解决方案
如果您希望用户能够更改导航菜单,而不是其他外观下的选项:使用此选项
// 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() {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets 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()
功能中的最后 3 行是我主题的主题。您可以在管理面板中点击要隐藏的子菜单找到第二个参数。您的网址将如下所示:example.com/wp-admin/themes.php?page=yiw_panel
所以在这个例子中,remove_submenu_page()
函数的第二个参数是 yiw_panel
第三种解决方案
在 WordPress 3.8 中,这将比现在接受的答案更好。
/**
* @var $roleObject WP_Role
*/
$roleObject = get_role( 'editor' );
if (!$roleObject->has_cap( 'edit_theme_options' ) ) {
$roleObject->add_cap( 'edit_theme_options' );
}
第四种方案
当我看管理菜单结构时,似乎 nav-menus.php
链接与能力 edit_theme_options
有关。您可以修改编辑器角色以包含此功能吗?这也是 give them the option to edit widgets,我不知道这是否是一个问题?所有的菜单 Ajax 的东西都受到这种功能的限制,所以只需更改管理菜单功能,编辑菜单可能会不起作用。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。