如何将权能分配给用户而不是用户角色

时间:2012-07-10 作者:amit

是否有任何方法可以将自定义功能分配给用户,我不是在谈论用户角色。

我正在运行一个多作者博客,我在其中分配了用户角色;“作者”;给我所有的作者。但我需要一个插件或函数。从USER-ID中删除功能(而不是角色)的php代码段

注意-

我不想将功能分配/撤销给角色(管理员/作者等),我想使用该用户ID将功能分配/撤销给特定用户。

更新-2012年1月8日

我有一个博客,假设有50位作者,一位作者有能力发表文章、评论、编辑、更新、发送电子邮件、共享等。但当用户滥用此功能时,我想撤销该用户的该功能。

但如果我决定使用角色,我必须创建许多具有不同功能的用户角色,例如

无法发送(&L);评论无法发送(&L);注释(&A);postetc是否有方法从用户(而不是用户角色)撤消功能

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

最后,我想出了一种使用WP_user

向特定用户添加/删除功能的代码段-

//to remove capability from user
$user = new WP_User( $user_id );
$user->remove_cap( \'can_email\');

//to add capability to user
$user = new WP_User( $user_id );
$user->add_cap( \'can_email\');
中有特殊功能capabilities.phpwp_user 类向用户分配/撤消功能。

SO网友:pcarvalho

您可以创建具有所需功能的新角色,然后将用户分配给该角色。

您可以使用add_role() 并传递所需的能力。

SO网友:Dipesh KC

如果您希望将功能分配给现有角色或(已创建自定义角色),则存在名为$wp\\U角色的全局变量

//suppose you have a custom role called \'architect\' and you want to add a capability called `can access architect zone`
global $wp_roles;
$wp_roles->add_cap( \'architect\', \'can_access_architect_zone\' );
//add to default roles
$wp_roles->add_cap( \'administrator\', \'monitor_architect\' );

结束