删除特定管理员的权能

时间:2014-02-03 作者:user1746018

我已经创建了两个管理员用户X和Y。现在我需要从用户Y中删除“编辑插件”功能。

我找了又找,http://goo.gl/LttuvX

$user = new WP_User( \'Y\' );
$user->remove_cap(\'edit_plugins\');
但它不起作用,请让我知道怎么做。

之前,我创建了一个新角色,其功能与管理员相同,但在插件中,我们创建了如下菜单add_menu_page(..,capability => \'administrator\',..); 所以新角色无法访问插件页面。

3 个回复
SO网友:Nathan Johnson

如果要明确拒绝来自用户(而不是角色)的功能,则需要使用add_cap() 方法,并指定$grant 参数为false。

$user = new WP_User( \'Y\' );
$user->add_cap( \'edit_plugins\', false );

SO网友:Brad Dalton

通过更换[email protected]

add_action(\'init\', \'remove_specific_admin_cap\');
function remove_specific_admin_cap(){
$user = wp_get_current_user();
if( $user && isset($user->user_email) && \'[email protected]\' == $user->user_email ) {
$role = get_role( \'administrator\' );
$role->remove_cap( \'edit_plugins\' );

    }
}
来源:http://codex.wordpress.org/Function_Reference/remove_cap

SO网友:Cedon

不应启用主题/插件的直接编辑,这是一个巨大的安全风险。您所做的任何编辑都应该在本地完成。

您可以通过添加define(\'DISALLOW_FILE_EDIT\', true); 到您的wp-config.php 文件

如果你不想让他们干扰插件,那么remove_cap( \'install_plugins\' );remove_cap( \'activate_plugins\' );

结束

相关推荐

How to modify admin headers

我正在尝试创建一个主题设置导出脚本,该脚本base\\u 64对主题选项进行编码,并允许用户将其下载为文本文件。我看到一个帖子(What is the best way to export and import theme options?) 这涉及检查查询变量,然后使用“template\\u redirect”操作重定向用户。然而,看起来这个操作只在站点的前端可用(不在管理中)。将操作添加到选项框架的构造函数中并没有任何作用。我可以通过将我的函数绑定到“admin\\u init”来启动它,但到那时,