Множественные значения 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?

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

$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
, мне удалось получить нужный запрос.

$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 );
мой код является примером.
