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
내가 틀리지 않으면 단순히 공백으로 분리하십시오.
카이저

답변:


18

@ 무사 필드에 여러 주문 값을 어떻게 넣을 수 있습니까? 나는 같은 질문을 궁금해하고 이것을 발견했다.

4.0에서는 orderby 값으로 배열을 WP_Query에 전달할 수 있습니다.

구문은 다음과 같습니다.

$q = new WP_Query( array( 
    'orderby' => array( 
       'title'      => 'DESC', 
       'menu_order' => 'ASC' 
    ) 
));

자세한 내용은 여기를보십시오 : https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/


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옵션 을 사용하여 내가 찾던 쿼리를 얻을 수있었습니다.


필드에 여러 주문 값을 어떻게 넣을 수 있습니까? 예 : menu_order의 경우 ASC, 날짜의 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 );

내 코드는 예입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.