Сообщения о заказе WordPress от meta_value_date не работают, как ожидалось

#wordpress

Вопрос:

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

 $tourDates = get_posts(array(
    'post_type'     => 'tour',
    'numberposts'   => 4,
    'meta_key'      => '_sm_tour_date',
    'orderby'       => 'meta_value_date',
    'meta_type'     => 'DATE',
    'order'         => 'ASC',
    'meta_query'    => array(
        array(
            'key'       => '_sm_tour_date',
            'compare'   => '>=',
            'value'     => date('Y-m-d')
        )
    )
));
 

Даты для каждой записи хранятся в формате ГГГГ-ММ-ДД, и это подтверждается, когда я добавляю вывод каждой даты события на лицевой стороне (что показывает, как она выводится в неправильном порядке).

введите описание изображения здесь

Хотя на самом деле я не могу придумать, что можно изменить, и документы, которые я просмотрел, похоже, предполагают, что мой код верен (как и запрос meta_query).

У меня также нет пользовательских плагинов для заказа, чтобы изменить правила заказа.

У кого-нибудь есть какие-нибудь советы или идеи?

Ответ №1:

Просто предположение, но попробуйте изменить значение «orderby» на «meta_value», а не использовать «meta_value_date».

Если это не работает, у меня обычно возникают трудности с запросами get_posts, которые используют meta_query. Вы использовали WP_Query вместо get_posts?

Комментарии:

1. Спасибо за это. На самом деле мне удалось решить эту проблему, прежде чем вы ответили, но я отмечу ваш ответ как правильный, потому что вы находитесь в правильном месте. Изменив его с meta_value_date на meta_value_num , это сделало эту работу правильной (хотя я все еще не уверен, почему исходное значение сработало не так, как ожидалось).