WP_Queryで投稿日を日付の期間指定して取り出したかったです。
どういうことかというと「2016年6月1日から2016年6月30日までの投稿」を取り出しかったです。
システム的に使っていたため出来る限り負荷を下げたクエリを発行したかったです。
公式サイトを見てみるとYEARとかMONTHを指定したものがおおく、もうちょっと直感的なクエリを作りたかったので調べました。
というわけでこちら。
$args = array(
'date_query' => array(
array(
'after' => '2016-06-01',
'before' => '2016-06-30',
'inclusive' => true,
),
),
$query = new WP_Query($args);
この引数でできるクエリは下記のような感じになりました。
SELECT wp_posts.* FROM wp_posts
WHERE 1=1 AND
( ( wp_posts.post_date >= '2013-06-01 00:00:00' AND wp_posts.post_date <= '2013-06-30 23:59:59' ) ) ORDER BY wp_posts.post_date DESC "
上記のクエリのダンプはWP_Queryのインスタンスのrequestをダンプすると見れます。
var_dump($query->request);
inclusive
を指定すると大なり小なり(< >の不等号)にイコールがつきます(<= =>)。
快適なWP_Queryライフを!