当前位置: 首页>>网站问题>>正文


允许编辑编辑菜单?

webfans 网站问题 , 去评论

问题描述

我希望能够授权我的编辑更改菜单,这可以吗?

外观标签似乎根本不是一个选项,我可以这样做吗?

最佳解决办法

将此添加到主题的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 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()函数中的最后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' );
}

第四种办法

安装插件“用户角色编辑器” – 切换edit_theme_options ON – 安装插件Adminimize – 为编辑器关闭”Widgets”和”Switch Theme”;)

第五种办法

当我查看管理菜单结构时,似乎nav-menus.php链接与功能edit_theme_options相关联。您可以修改编辑器角色以包含此功能吗?这还会是give them the option to edit widgets,我不知道这是不是有问题?所有菜单Ajax都受此功能的限制,因此只需更改管理菜单功能即可编辑菜单。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2693.html,转载请务必附带本地址声明。