WordPress get_users 支持数组吗?

问题描述 投票:0回答:2

有谁知道函数

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
之外还有其他解决方法吗?

php arrays wordpress
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 );

你也可以使用动作钩子

pre_user_query
,但这似乎有点过分了。


0
投票

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

$custom_ids = implode(',',get_users('role=administrator&field=ID')); 
$custom_ids .= ",".implode(',',get_users('role=line_manager&field=ID'));
© www.soinside.com 2019 - 2024. All rights reserved.