Multiple orderby values in WP_Query

I’m trying to come up with a query to sort by multiple orderby values. Here’s what I have so far:

    $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'
    ));

I’m trying to query a custom post type, and within that post type, query a meta value.

Then, I’d like to first sort by menu_order ascending, then by a custom meta value wcu_lastname ascending. However, the orderby value didn’t seem to be able to take an array.

How can I order the query using multiple orderby values?

3

@Musa
how can we put multiple order value for the fields?
I was wondering the same question and I found this :

In 4.0, you can now pass an array to WP_Query as the value for
orderby.

The syntax looks like:

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

Have a look here for more details :
https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/

Leave a Comment