it-swarm.com.ru

Несколько значений orderby в WP_Query

Я пытаюсь найти запрос для сортировки по нескольким значениям 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?

11
Force Flow
$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, я смог получить искомый запрос.

7
Force Flow

@Musa, как мы можем поставить несколько значений порядка для полей? Мне был интересен тот же вопрос, и я нашел это:

В версии 4.0 теперь вы можете передать массив в WP_Query в качестве значения для orderby.

Синтаксис выглядит так:

$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/

17
Pauleau