如何按多个元字段对WP_USER_QUERY进行排序?

时间:2014-11-24 作者:SinisterBeard

我在WordPress中获得了以下WP\\u USER\\u查询:

$args = array(
    \'orderby\'=>\'meta_value\',
    \'meta_query\' => array (
        0 => array(
                    \'key\' => \'last_name\',
                    \'value\' => \'smith\'
                    ),
        1 => array(
                    \'key\' => \'first_name\' 
                    )
        ),

        );

$user_query = new WP_User_Query($args);
它在返回我期望的记录的同时也在工作,但是orderby 是关闭的-它只按他们的姓氏排序,而忽略第一个。如何在这种查询中按多个自定义用户元字段进行搜索?

2 个回复
最合适的回答,由SO网友:SinisterBeard 整理而成

简短回答:你不能。我必须编写一个自定义查询。

SO网友:Parsa

您可以使用“orderby”参数进行操作。参数说明:

用于对检索到的用户进行排序的字段。可以是单个值、值数组或多维数组,其中字段作为键,顺序(“ASC”或“DESC”)作为值。接受的值为“ID”、“display\\u name”(或“name”)、“include”、“user\\u login”(或“login”)、“login\\u in”、“user\\u nicename”(或“nicename”)、“nicename\\u in”、“user\\u email(或“email”)、“user\\u url”(或“url”)、“user\\u registered”(或“registered”)、“post\\u count”、“meta\\u value”、“meta\\u value\\u num”、的值$meta_key, or an array key of $meta_query. 要使用“meta\\u value”或“meta\\u value\\u num”,$meta_key 还必须定义。默认“user\\u login”。

示例:

$args = array(
    \'orderby\' => array(
        \'user_rate\' => \'DESC\',
        \'user_cat\' => \'DESC\',
    ),
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        \'user_rate\' => array(
            \'key\' => \'user_rate\',
            \'compare\' => \'EXISTS\'
        ),
        \'user_cat\' => array(
            \'key\' => \'user_cat\',
            \'value\' => $_GET[\'cat\']
        )
    )
);
$user_query = new WP_User_Query($args);

结束

相关推荐