タックスクエリ
メタクエリ
に続き
発見しましたよ
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/