有人知道函数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
之外还有其他解决方法吗?
答案 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'));