从克隆的管理员角色中删除权能

时间:2012-01-11 作者:Justice Is Cheap

我正试图在我的wordpress主题中创建一个新角色,该角色几乎拥有与管理员相同的权限。基本上,它是编辑和管理员之间的交叉。我遇到的一个问题是允许编辑器在外观中“查看”添加自定义图像标题子菜单。我要么想让编辑器看到这个子菜单,要么创建一个新角色,让他们拥有与管理员几乎相同的功能。我看到了下面关于克隆角色的链接,但我该如何去掉这些功能并找出这些功能是什么?

https://wordpress.stackexchange.com/a/31472/7662

TIA!

1 个回复
最合适的回答,由SO网友:Tomas Buteler 整理而成

有关按用户级别列出的功能列表,请检查Roles and Capabilities Codex page.

允许用户更改主题标题的功能可能是edit_theme_options, 但我敢打赌,这会给你的编辑器带来更多的功能,而不仅仅是搞乱标题。如果不知道你用的是什么主题,很难确定。

另一方面,创建自定义功能的问题是,除非您有权访问创建要允许访问的菜单项的功能,它不会对你有任何好处(特别是,我不认为自定义标题是一个可以通过主题函数轻松调整的功能,除非它是一个完全定制的功能——也就是说,不是你在默认的WordPress主题(如二十一)中会找到的功能)。

所以我想说:克隆角色并调整功能。

要从角色中移除功能,请在functions.php:

add_action(\'init\', \'remove_unnecessary_capabilities\', 10);
function remove_unnecessary_capabilities() {
    $caps_to_remove = array(
        \'export\',
        \'import\',
        \'create_users\',
        \'switch_themes\' // etc
    );
    $custom_role = get_role(\'admin_editor\'); // Edit according to your role as it was declared when added
    foreach($caps_to_remove as $cap) {
        $custom_role->remove_cap($cap);     
    }
}
上述代码将在每次呈现页面时运行,尽管功能记录在数据库中。除了增加不必要的开销之外,这不会产生任何后果,但如果它困扰您,请检查以下答案:this, 如果你正在编写一个主题;或this 如果您正在编写插件。

结束

相关推荐