授予编辑者对边栏的访问权限


15

我想授予“编辑者角色”访问权限,以编辑侧边栏及其内容。我在那里有一个文本小部件,为了编辑此文本小部件,用户需要是管理员-这太糟了。如何授予“编辑者角色”权限,使他可以编辑侧边栏?



这似乎是我在寻找的东西,但我不理解代码。看起来他在创建新用户并分配角色,而不是编辑现有用户
Howdy_McGee

Answers:


21

edit_theme_options功能应允许用户按照此页面上的说明编辑侧栏:http : //codex.wordpress.org/Appearance_Widgets_SubPanel

要添加的代码 functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

编辑:

这应该可以防止编辑者访问主题或菜单

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

我还没有机会进行测试,但是它只能从菜单中删除它们,他们仍然可以通过直接输入URL来访问它们。


那就像一个咒语,但是如何阻止他们访问菜单或主题呢?
Howdy_McGee

看到我编辑的答案。
Elliott

致命错误:调用未定义函数remove_menu_page()-同样,我也不担心他们通过URL键入它,我真的怀疑有人会发这种恶意,甚至只是主题和菜单。而且我无法为您的信息+1足够多!谢谢!
Howdy_McGee

抱歉添加了错误的代码,remove_submenu_page尽管您仍然不应该收到致命错误。我已经编辑了答案并进行了测试,对我来说一切正常吗?
Elliott

1
哦,这就是为什么从3.1.0开始仅受支持的原因,自升级以来我没有任何错误...我总是建议升级到最新版本以确保其安全。
Elliott

1

如果您只想尽可能简单地进行配置,请使用会员插件。您需要添加的功能是“ edit_theme_options”。请注意,这不仅会赋予小部件区域更多的权限,还使编辑者可以访问整个“外观”菜单。看这里

http://wordpress.org/extend/plugins/members/

如果要以编程方式执行此操作,则需要使用add_cap()。

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

您可以将该代码放入其自己的插件中,然后完成。或将其放入functions.php中


而且,如果有人在使用相当流行的用户角色编辑器,则也可以在其中选择“编辑主题选项” /“ edit_theme_options”。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.