WordPress: сортировка по нескольким мета-ключам с помощью wp_query

Я работаю над сайтом событий с календарем всех событий, отсортированных по двум настраиваемым полям

  1. date_start - день события. данные хранятся примерно так: 20160622 на сегодня> 22/06/2016

  2. time_start - время начала события в этот день. данные хранятся для немецкого использования. 10:00 = 10:00 / 15:00 = 15:00 / 20:00 = 20:00

Сортировать события только по date_start прекрасно работает.

$query = new WP_Query( array( 
            'post_type' => 'veranstaltungen',
            'post_status' => 'publish',
            'cat' => '1,2,3,4,5',
            'posts_per_page' => -1,
            'meta_key' => 'date_start',
            'orderby'  => array( 'meta_value_num' => 'ASC'),
            'order' => 'DESC'   
        ));

Теперь я ищу решение с сортировкой и настраиваемым полем time_start. Когда событие начинается в 15:00 (15:00), оно не должно отображаться после события 20:00 (20:00).

Что в моем случае является правильным использованием "meta_query" для сортировки пользовательских запросов по дате и времени?

1 ответ

Я думаю, что вам нужно использовать meta_query, Попробуйте сделать что-то вроде ниже.

$query = new WP_Query( array( 
    'post_type' => 'veranstaltungen',
    'post_status' => 'publish',
    'cat' => '1,2,3,4,5',
    'posts_per_page' => -1,
    'meta_query'    => array(
        array(
                'key'     => 'date_start',
                'orderby' => 'meta_value_num',
                'order' => ASC,
            ),
            array(
                'key'     => 'time_start',
                'orderby' => 'meta_value',
                'order' => DESC,
            ),
    ),
));
Другие вопросы по тегам