WordPress WP_Query тип сообщения о событии запроса для событий после текущего времени - PullRequest
1 голос
/ 13 марта 2019

Я не знаю, почему я не могу заставить это работать. Поэтому я хочу получить список событий, которые ожидаются в будущем. Дата события сохраняется как метка времени. Я хочу упорядочить их по следующему событию, а затем по следующему и т. Д.

Вот то, что я использую, но оно не упорядочено по отметке времени и даже показывает прошедшие события.

$args = array (
'post_type' => 'race', 
'posts_per_page' => -1,
'meta_key' => 'race_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_compare' => '>=',
'meta_value' => time()
);

Так, например, есть событие с отметкой времени 1540322400 и временем тестирования - 1552474027, поэтому я не знаю, почему возвращается это событие.

Тогда, например, событие с временной меткой 1556447400 отображается раньше в порядке события с временной меткой 1551813600.

В этом случае я использую функцию выбора даты и времени в Advanced Custom Fields и храню ее, используя пользовательское значение U для хранения метки времени.

Я не уверен, почему я не могу заставить это работать.

1 Ответ

0 голосов
/ 13 марта 2019

Я думаю, вам нужно явно указать сравнение объекта даты для вашего мета-запроса.В противном случае сравнение может сравнивать строки, а не даты.

Вы можете установить тип 'DATETIME при сравнении мета-запроса.

Попробуйте этот запрос:

$time = date('U'); // same as ACF format
$args = array (
    'post_type' => 'race', 
    'posts_per_page' => -1,
    'orderby' => 'meta_value',
    'order' => 'ASC',
    'meta_query' => array(
            array(
                'key'     => 'race_date',
                'value'   => $time,
                'compare' => '>=',
                'type'    => 'DATETIME' // Try with DATE if necessary
            )
        ),
);

Ссылки

...