Home News

Date_query для WP_Query, фильтры постов по дате

12.04.2018

До версии движка 3.7, WP_Query имел весьма скудные параметры для получения постов по датам , ну правда ещё была небольшая хитрость , которая позволяла вывести посты, опубликованные в определенный промежуток времени.

Версия WordPress 3.7 принесла нам потрясающий date_query, по сути это аналог meta_query и tax_query , но только для дат, который полностью развязывает нам руки в отношении фильтрации постов по дате/времени.

1. Заменяем старые параметры даты на date_query.

Так же, как и раньше, вы можете выводить посты, опубликованные в определенный год, месяц, день, час, минуту и так далее. Кроме того, старый вариант задания даты никуда не делся, вы спокойно можете использовать и его:

$params = array ( 'year' => 2014 , // год 'monthnum' => 12 , // номер месяца, декабрь 'day' => 31 // число ) ; $dateq = new WP_Query ( $params ) ;

Но можете и перейти на новый формат задания даты через date_query:

$params = array ( 'date_query' => array ( array ( 'year' => 2014 , 'month' => 12 , // обратите внимание, раньше было monthnum, теперь просто month 'day' => 31 , ) , ) , ) ; $dateq = new WP_Query ( $params ) ;

2. Вывод постов за определенный промежуток времени.

Пример 1. Посты по дням недели.

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

rss