1

有谁知道该函数是否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) {

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

4

2 回答 2

3

是的,你是对的,它不支持数组
这是要在 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 );

您也可以使用 action hook pre_user_query,但这似乎有点过头了。

于 2013-09-19T14:53:21.220 回答
0

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

$custom_ids = implode(',',get_users('role=administrator&field=ID')); 
$custom_ids .= ",".implode(',',get_users('role=line_manager&field=ID'));
于 2016-02-24T10:45:38.683 回答