在管理面板中限制访问

时间:2014-01-20 作者:Howdy_McGee

我想限制对某些插件页面/普通WP页面的访问。我找到了一种从菜单中隐藏这些页面的方法,但目前没有限制它们。例如,我有一个编辑器,我不想让他们访问MediaTools - 我可以通过以下方式隐藏这些页面:

function editor_menu() {
    global $menu;

    if(!current_user_can(\'administrator\'))
    {
        $restricted = array(__(\'Media\'),__(\'Tools\'));
        end ($menu);
        while (prev($menu)){
            $value = explode(\' \',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }
    }
}
add_action(\'admin_menu\', \'editor_menu\', 999);
但我如何限制他们完全查看此页面?喜欢权限?

2 个回复
SO网友:Bendoh

我认为正确的解决方案是只更新admin\\u菜单项的$capability组件,而不是将其从菜单结构中删除。

尝试以下操作:

/** Set \'administrator\' cap for particular menu items **/
function update_admin_menu() {
    global $menu, $submenu;

    $menu[10][1] = \'administrator\'; // Media
    foreach( $submenu[\'upload.php\'] as &$item ) {
        $item[1] = \'administrator\';
    }

    $menu[75][1] = \'administrator\'; // Tools
    foreach( $submenu[\'tools.php\'] as &$item ) {
        $item[1] = \'administrator\';
    }    
}
add_action( \'admin_menu\', \'update_admin_menu\', 1000 );
请注意user levels 已弃用,但它在这种情况下有效,基本上与创建新cap(管理员将自动访问该cap)并将该功能分配给这些菜单项时相同。

SO网友:Gareth Gillman

最好的选择是使用插件,如User Roles Pro 您可以创建新的用户角色,然后限制他们在管理中执行xx项任务。

结束

相关推荐

Security and .htaccess

大约一个月前,我在一个与爱好相关的托管服务器上创建了一个WordPress博客。所以,我目前还不熟悉这一点。由于我担心安全性,我做的一件事就是安装插件WP安全扫描。根据插件结果,我的网站会被检查出来,但我在结果中看到的是一个红旗:文件。wp admin中不存在htaccess/(我在那里ssh了,它不存在)好的,所以我在这个问题上做了大量的搜索,找到了太多的信息。htaccess。我在WordPress上经历了强化WordPress。org网站等,也遇到了这篇文章:http://digwp.com/201