按特定功能而不是按角色获取用户

时间:2019-10-08 作者:S4m

有没有一种方法可以使用get\\u users()函数,或者其他方法来检索自定义用户功能的所有用户?

例如,我为选定数量的用户提供了“team\\u member”功能,允许用户访问非团队成员无法访问的区域。

由于站点的性质,不能简单地创建一个新角色。我也不能只向已经注册的角色添加功能。

我假设有一种方法可以使用get\\u用户来实现这一点,但似乎没有。除非我错了?

$args = array(

    \'role\' => \'team_member\'

); 

get_users( $args );
如果没有办法从自定义cap获取用户,我的下一个想法是不要使用自定义功能,而是在用户的usermeta中插入相同的密钥。这将至少允许我在get\\u user$args中包含meta\\u查询。

1 个回复
最合适的回答,由SO网友:M-R 整理而成

我试了一下。首先,我使用以下代码为特定用户添加了自定义功能

$user = new WP_User( $user_id );
$user->add_cap( \'team_member\' );
幸运的是,按照您的建议,可以使用以下代码检索此用户

$args = array(
    \'role\' => \'team_member\'
); 

get_users( $args );
隐式工作如下

$args = array (
    \'meta_query\' => array(
        array(
            \'key\'     => \'wp_capabilities\',
            \'value\'   => \'%team_member%\',
            \'compare\' => \'LIKE\'
        ),
    )
);

$wp_user_query = new WP_User_Query( $args );
参考号:WP_User_Query

相关推荐

Users activity history

当我们更改代码上的一些问题时,wordpress web出现了一些问题,我想确定是哪些更改导致了web崩溃。我尝试了一些插件作为简单的历史记录,但问题是,您无法在安装插件之前获得所做的活动。有人知道即使我们没有安装插件,我如何才能获得网站的全部活动吗?提前谢谢。