Сортировка WP Query по мета-значению (дата)
20 нояб. 2014 г., 19:03:22
Просмотры: 16.9K
Голосов: 1
У меня есть следующий код, где я хочу сортировать по мета-ключу "event_date" и выводить только записи после текущей даты и на 3 недели вперед. Однако ничего не происходит, даже когда я упрощаю WP Query до типа записи и порядка, ничего не выводится, скрипт просто останавливается там, где вставлен код.
<?php $events_args = array(
'meta_query' => array(
array(
'key' => 'event_date', // Ключ произвольного поля
'value' => date('d-m-Y', strtotime("+3 weeks")), // Текущая дата + 3 недели
'compare' => '<', // Сравнение "меньше чем"
'type' => 'DATE' // Тип данных - дата
)
),
'posts_per_page' => 3, // Количество постов
'post_type' => 'event', // Тип записи
'meta_key' => 'event_date', // Мета-ключ для сортировки
'orderby' => 'meta_value', // Сортировка по значению поля
'order' => 'ASC' // Порядок сортировки
); ?>
<?php $upcoming_events = new WP_Query($events_args); ?>
<?php if($upcoming_events->have_posts()): while($upcoming_events->have_posts()): $upcoming_events->the_post(); ?>
<a href="<?php the_permalink(); ?>"><article class="post_block">
<h2><?php the_title(); ?></h2>
<p class="date"><?php $date = new DateTime(get_field('event_date')); echo $date->format('d-m-Y'); ?><?php // echo get_the_date('d-m-Y'); ?></p>
<p class="text"><?php echo get_the_excerpt(); ?></p>
</article></a>
<?php endwhile; endif; wp_reset_postdata(); ?>
Есть идеи, почему ничего не выводится? Если я выполняю простой query_posts, например:
query_posts('posts_per_page=3&post_type=event&meta_key=event_date&orderby=meta_value&order=DESC');
то он выводит события, но сортирует по новейшим событиям, а мне нужно сортировать события от сегодняшнего дня и на 3 недели вперед.
Комментарии
Показать остальные 1 комментариев
Все ответы на вопрос
1
Похожие вопросы