管理员角色权能

时间:2014-02-12 作者:andys

我需要让管理员无法管理选项,但它不起作用。。。

我的代码:

function set_capabilities() {
     $editor = get_role( \'administrator\' );
     $editor = remove_cap(\'manage_options\');
}
add_action( \'admin_init\', \'set_capabilities\' );
我做错了什么?

2 个回复
最合适的回答,由SO网友:user2172846 整理而成

您正在创建一个函数并初始化一个覆盖它的局部范围变量。

这里有一种不同的方法:

global $wp_roles; // global class wp-includes/capabilities.php
$wp_roles->remove_cap( \'administrator\', \'manage_options\' );
_基于codex:remove_cap_

编辑:

/**
* Remove capability from admins.
*/
function wpcodex_set_capabilities() {

    // Get the role object.
    $admin = get_role( \'administrator\' );
    $admin->remove_cap( \'manage_options\' );
}
add_action( \'init\', \'wpcodex_set_capabilities\' );

SO网友:Brad Dalton

有两种不同的方法可以做到这一点:

将以下任一代码段添加到子主题函数文件中。

function set_capabilities() {
     $role = get_role( \'administrator\' );
     $role = remove_cap(\'manage_options\');
}
add_action( \'init\', \'set_capabilities\' );
或者您也可以使用:

function set_admin_capabilities(){

global $wp_roles;
$wp_roles->remove_cap( \'administrator\', \'manage_options\' );
    }
add_action( \'init\', \'set_admin_capabilities\' );

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?