WP_Query中的多个orderby值


14

我正在尝试提出一个查询,以按多个orderby值进行排序。这是我到目前为止的内容:

    $dept_id=2;
    $query=new WP_Query(array(
            'post_type'=>'wpcontactus',
            'nopaging'=>true,
            'post_status'=>array('publish', 'pending', 'future'),
            'meta_key'=>'wcu_dept',
            'meta_value'=>$dept_id,
            'orderby'=>'title',
            'order'=>'ASC'
    ));

我正在尝试查询自定义帖子类型,并在该帖子类型内查询元值。

然后,我想先按menu_order升序排序,然后按自定义元值wcu_lastname升序排序。但是,orderby值似乎无法采用数组。

如何使用多个orderby值对查询进行排序?


3
如果我没看错,只需将它们加空格即可。
kaiser 2012年

Answers:



8
$query=new WP_Query(array(
                'post_type'=>'wpcontactus',
                'nopaging'=>true,
                'post_status'=>array('publish', 'pending', 'future'),
                'meta_query'=>array(
                                array('key'=>'wcu_dept','value'=>$dept_id, 'compare'=>'='),
                            ),
                'meta_key'=>'wcu_firstname',
                'orderby'=>'menu_order wcu_firstname',
                'order'=>'ASC'
        ));

通过使用@kaiser的建议和meta_query选项,我可以获取所需的查询。


我们如何为字段放置多个订单值?例如:ASC为menu_order,DESC为日期
Musa

0
    $args = [
        's'              => $keyword,
        'post_type'      => ['page'],
        'paged'          => $paged,
        'posts_per_page' => PAGE_LIMIT,
        'tax_query' => [
             [
                  'taxonomy'         => TAX_RESOURCE_PAGE,
                  'field'            => 'slug',
                  'terms'            => $c_term_slug
             ],
        ],
        'post_status'    => 'publish',
        'meta_key'       => 'order',
        'meta_type'      => 'NUMERIC',
        'orderby'        => [
             'meta_value_num' => 'ASC',
             'ID' => 'DESC',
        ],
    ];
    $wp_query = new WP_Query( $args );

我的代码就是一个例子。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.