Как сделать выборку постов по дате в WordPress
У меня стоит задача: есть 2 (месяц и год) дата с которой брать публикацию первую и 2 (месяц и год) последней публикации. Мне нужно вывести все материалы в этом интервале. Было бы круто если эти селекты заменить просто на два, такие как при добавлении публикации в WordPress где там все в куче можна выбрать и день и месяц и год. Спасибо за помощь.
function true_filter_by_date($where = '') {
$from = '2012-11-15';
$to = '2012-12-24';
$where .= " AND post_date >= '$from' AND post_date <= '$to'";
return $where;
}
add_filter('posts_where', 'true_filter_by_date');
$params = array(
'posts_per_page' => -1
);
$q = new WP_Query($params);
while($q->have_posts()) {
$q->the_post();
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
}
wp_reset_postdata();
remove_filter('posts_where', 'true_filter_by_date');
Ответы (1 шт):
Автор решения: Valerii Vasyliev
→ Ссылка
Для работы с датой есть специальный класс WP_Date_Query
$params = array(
'posts_per_page' => -1,
'date_query' => array(
'before' => array( 'year' => 2012, 'month' => 12, 'day' => 24 ),
'after' => array( array( 'year' => 2012, 'month' => 11, 'day' => 15 ),
'inclusive' => true, // включительно
),
);
$q = new WP_Query($params);