WordPress get_users是否支持数组?

时间:2013-09-19 13:59:54

标签: wordpress

有人知道函数get_users是否支持一组用户角色?我的猜测是没有。

我有以下工作:

$args =array(
   'role' => 'line_manager'
);
$blogusers = get_users($args);
foreach ($blogusers as $user) { 

然后我将上面的内容调整为如下所示,它返回空。

$args =array(
    'role' => array('line_manager','administrator')
);
$blogusers = get_users($args);
foreach ($blogusers as $user) {

如果它不支持数组,除了执行wp_query之外还有其他解决方法吗?

2 个答案:

答案 0 :(得分:3)

是的,你是对的,it doesn't support arrays 这是在SQL查询LIKE '%\"line_manager\"%'中使用的字符串。

但是一个简单的array_merge可以解决这个问题:

$argsa =array( 'role' => 'administrator' );
$a = get_users( $argsa );

$argsb =array( 'role' => 'line_manager' );
$b = get_users( $argsb );

$users = array_merge( $a, $b );

您也可以使用动作挂钩pre_user_query,但这似乎有点过分。

答案 1 :(得分:0)

正如@brasofilo所说,你基本上需要构建单独的查询并组合结果。这是另一种方法,稍微缩短{example}方法 - 假设您只想收集ID:

$custom_ids = implode(',',get_users('role=administrator&field=ID')); 
$custom_ids .= ",".implode(',',get_users('role=line_manager&field=ID'));