Как сделать разную сортировку по двум метаполям в WP_Query
Задача:
Есть тип записей "Мероприятия". У них есть два метаполя - date_start и date_end. Нужно чтобы на архивной странице с выводом постов первым было ближайшее мероприятие. Затем все, которые идут после него. И когда предстоящие меропрития закончились дальше чтобы шли все прошедшие мероприятия.
Сайт на ВП.
Стандартный способ из документации ВП не работает с методом relation "OR", только с "AND".
Вот пример сайта (сайт тоже на ВП), где все работает как нужно https://chamber.ua/ua/events/?partners
Но там это было сджелано - не ясно.
Вот мой код запроса:
return new WP_Query([
'post_type' => 'event',
'meta_query' => [
'relation' => 'OR',
'future_events' => [
'key' => 'date_start',
'value' => date('Y-m-d H:i:s'),
'compare' => '>=',
'type' => 'DATE'
],
'past_events' => [
'key' => 'date_end',
'value' => date('Y-m-d H:i:s'),
'compare' => '<=',
'type' => 'DATE'
],
],
'orderby' => [
'future_events' => 'ASC',
'past_events' => 'DESC',
],
'posts_per_page' => 15,
'paged' => $this->paged()
]);
Но в итоге все равно работает только одна из сортировок, которая указана первой в массиве orderby