Не получается выполнить комбинированный запрос с сортировкой?
Ниже приведен код, который я использую для запроса многодневных событий. Проблема в том, что я могу либо сортировать по дате начала (evstart_date), либо выполнять комбинированный запрос по дате начала и дате окончания (evend_date). Но я не могу одновременно выполнить комбинированный запрос И сортировку. Код ниже правильно выполняет запрос (продолжает показывать многодневные события, которые начались в прошлом, но еще не закончились), но сортировка не работает (возвращается к сортировке по умолчанию по дате публикации).
Я пробовал несколько вариантов, но не смог найти решение.
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$today = date('Y-m-d', strtotime('-6 hours'));
$upcomingevents = new WP_Query(array(
'post_type' => 'events',
'posts_per_page' => 6,
'paged' => $paged,
'meta_query'=>array(
'relation'=>'OR',
array(
'key' => 'evstart_date',
'value' => $today,
'compare' => '>=',
'type' => 'CHAR'
),
array(
'key' => 'evend_date',
'value' => $today,
'compare' => '>=',
'type' => 'CHAR'
)
),
'meta_key' => 'evstart_date',
'orderby' => 'meta_value',
'order' => 'ASC'
));
?>

У меня была такая же проблема, пока я не понял, что на самом деле не нужно делать запрос по дате начала события, только по дате окончания.
Пока дата окончания события не наступила, не важно, находится ли дата начала в будущем или нет. Все, что вам нужно сделать - это выбрать все даты, которые еще не закончились, а затем отсортировать их по дате начала.
Это должно сработать для вас:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $today = date('Y-m-d', strtotime('-6 hours')); $upcomingevents = new WP_Query(array( 'post_type' => 'events', // Тип записи - события 'posts_per_page' => 6, // Количество событий на странице 'paged' => $paged, 'meta_query'=>array( array( 'key' => 'evend_date', // Ключ для даты окончания 'value' => $today, 'compare' => '>=', // Сравнение: дата окончания больше или равна текущей 'type' => 'CHAR' ) ), 'meta_key' => 'evstart_date', // Ключ для даты начала 'orderby' => 'meta_value', // Сортировка по значению метаполя 'order' => 'ASC' // Порядок сортировки - по возрастанию )); ?>

Я в итоге пришел к такому же выводу, Кристиан; просто не успел опубликовать это как ответ. Спасибо за твой ответ.
