gogolik
@gogolik

Как исправить вывод будущих событий через meta-теги?

Есть условная афиша, созданная через custom post type. Нужно вывести события, которые только будут. Дата задана через meta-тег event_date в формате d.m.Y. Есть код:
$args = array(
    'post_type' => 'events',
    'posts_per_page' => 5,
    'orderby'   => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key' => 'event_date',
            'value' => date("d.m.Y"),
            'type' => 'DATE',
            'compare' => '>='
        )
    )
);

Но сортировка идёт только по дню месяца. При этом, все события, день которых "до" текущей даты - не отображаются.
Например, сегодня 05.02.2017. Порядок записей будет такой:
Событие 06.03.2017
Событие 08.11.2018
Событие 11.02.2017
Событие 11.05.2017
Событие 24.03.2017
События 02.03.2018 и 04.05.2017 не будут отображаться.

Собственно, вопрос: что я делаю не так и как исправить?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
gogolik
@gogolik Автор вопроса
Сменить формат даты в базе на Y/m/d.
$args = array(
    'post_type' => 'events',
    'posts_per_page' => 5,
    'orderby'   => 'meta_value_num',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key' => 'event_date',
            'value' => date("Y/m/d"),
            'type' => 'DATE',
            'compare' => '>='
        )
    )
);

Выводить в нужном формате через:
$date = get_post_meta($post->ID, 'event_date', true);
echo date("d.m.Y", strtotime($date));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы