投稿日や更新日のクエリdate_query

タックスクエリ
メタクエリ
に続き
発見しましたよ
date_query

クエリポストや
イズメインクエリなどで
重宝しそう

今回の目的は
ソールドアウトと更新した記事は
30日間はループに表示させるが
30日以降は表示させない

という設定で仕様予定

date_query

//投稿日が一年以上前で、一ヶ月以内に更新された記事を取得

$args = array(
	'date_query' => array(
		array(
			'column' => 'post_date_gmt',
			'before' => '1 year ago',
		),
		array(
			'column' => 'post_modified_gmt',
			'after'  => '1 month ago',
		),
	),
	'posts_per_page' => -1,
);
$query = new WP_Query( $args );

省略時は投稿日時(’post_date’)となっている。’column’には’post_date’、’post_date_gmt’、’post_modified’、’post_modified_gmt’、’comment_date’、’comment_date_gmt’が指定できる。

$query = new WP_Query(
array(
‘date_query’=>array(
array(
‘inclusive’=>ture,
‘after’=>date(‘Y/m/d’, strtotime(‘-14 days’)))
)
)
);

http://www.mspace.info/wordpress-4-251.html

くわしくは
http://codex.wordpress.org/Class_Reference/WP_Query

参考

http://elearn.jp/wpman/column/c20131030_01.html

以下
コードの参照になればとコピペ

//サイトを閲覧している日時に更新されたpostを取得

$today = getdate();
$args = array(
	'date_query' => array(
		array(
			'year'  => $today["year"],
			'month' => $today["mon"],
			'day'   => $today["mday"],
		),
	),
);
$query = new WP_Query( $args );


//今週の記事を取得

$week = date('W');
$year = date('Y');
$query = new WP_Query( 'year=' . $year . '&w=' . $week );

//今週の記事を取得

$args = array(
	'date_query' => array(
		array(
			'year' => date('Y'),
			'week' => date('W'),
		),
	),
);
$query = new WP_Query( $args );


日〜土が1〜7に割り当てられています。
日 = 1
月 = 2
火 = 3
水 = 4
木 = 5
金 = 6
土 = 7

//平日(月〜金)9時〜17時に投稿された記事を取得

$args = array(
	'date_query' => array(
		array(
			'hour'      => 9,
			'compare'   => '>=',
		),
		array(
			'hour'      => 17,
			'compare'   => '<=',
		),
		array(
			'dayofweek' => array( 2, 6 ),
			'compare'   => 'BETWEEN',
		),
	),
	'posts_per_page' => -1,
);
$query = new WP_Query( $args );




ソースを見ているとcompareには下記の値が使えそうです。BETWEEN、NOT BETWEENあたりは特に便利そうですね。

'=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'




続いてもう一つ。afterのように英語表記で年月日指定もできますが、beforeのような指定のほうがわかりやすいと思います。
inclusiveはafter, beforeのみに適用されるtrue/falseの値を取るパラメータで、trueであればafterやbefore自体のマッチした投稿を含む、falseであれば含まない、というパラメータになっています。

//2013/1/1〜2013/2/28に投稿された記事を取得

$args = array(
	'date_query' => array(
		array(
			'after'     => 'January 1st, 2013',
			'before'    => array(
				'year'  => 2013,
				'month' => 2,
				'day'   => 28,
			),
			'inclusive' => true,
		),
	),
	'posts_per_page' => -1,
);
$query = new WP_Query( $args );

http://makeityourself.org/howto/date_query/