WP_USER_QUERY组合角色和ID

时间:2021-06-19 作者:Tomas Korinek

我想获得所有作者的数组(除了少数作者),向其中添加几个管理员(通过ID),并按用户名排序数组。但是我找不到在一个WP\\u User\\u查询中实现它的方法。

当我分别调用这两个子查询并通过array\\u merge()将结果放在一起时,这是可以的,但我需要按名称对它们排序,这样做是不可能的。。。

所以现在我正在尝试这样的东西,但它让我拥有了所有的用户。我做错了什么?

$args = array(
    \'orderby\'  => \'display_name\',
    \'order\'    => \'ASC\',
    array(
        \'relation\' => \'OR\',
        array(
            \'role\' =>   \'author\',
            \'exclude\' => array(36, 41)
        ),
        array(
            \'include\' => array(23, 45),
        )
    )
);

1 个回复
SO网友:Tomas Korinek

正如我在上面的评论中所说,WP\\u User\\u查询不支持嵌套的子数组。。。所以最后我通过单独的查询解决了这个问题。。。

不确定是否有更有效的方法,但如果有人需要灵感,下面是我对问题的解决方案。

// get ids of first set of users
$authors_query = new WP_User_Query(
    array(
        \'fields\' => \'id\',
        \'role\' =>   \'author\',
        \'exclude\' => array(36, 41)
    )
);
$authors = $authors_query->get_results();

// get ids of second set of users
$admins_query = new WP_User_Query(
    array (
        \'fields\' => \'id\',
        \'include\' => array(23, 45),
    )
);
$admins = $admins_query->get_results();

// merge ids
$user_ids = array_merge( $admins, $authors );

// get final selection
$user_query = new WP_User_Query(
    array(
        \'include\'  => $user_ids,
        \'orderby\'  => \'display_name\',
        \'order\'    => \'ASC\',
    )
);

相关推荐

将数组作为元值的GET_USERS

我的WordPress用户有一个自定义的生日元密钥(DD/MM/AAAA,例如2020年2月25日)。如果我想让所有用户今天(2002年2月25日)出生,我可以使用:$todays_birthday=\'25/02/\'; get_users(array(\'meta_compare\'=>\'like\', \'meta_key\'=>\'birthday\', \'meta_value\'=>$todays_birthday)); 它工作完美,返回所有今天出生的用户