query_postsやget_postsは、引数に普通のパラメータを渡す方法だと、ある日付のみのデータ取得は出来ても、いつからいつまでというような期間を設定する事ができない(と思う。)
それを設定するには、以下のコードをfunctions.phpに追加する。
function filter_where( $where = '' ) { $where .= " AND post_date >= '".date('Y-m-d', strtotime('-5 days'))."'"; return $where; } add_filter( 'posts_where', 'filter_where' );
このコードでは「投稿日が過去5日間」という期間の条件を与えている。(このコードを完全に理解するには、SQLとPHPの知識も多少必要かもしれません。)
これでquery_postsでは期間の設定が出来る。ここで結構ハマるのがget_posts。(というか自分は数時間ハマりました。) これだけではget_postsは期間の設定を受け付けない。
get_postsにも上記コードを有効にするには、get_postsの引数に『’suppress_filters’ => false』というパラメータも加える。具体的には以下のようなコード。
$args = array( 'numberposts' => -1, 'suppress_filters' => false ); $post_list = get_posts($args);
ちなみに『numberposts』は取得する投稿データの数を設定する。ここを「-1」にすると、条件に当てはまる全ての投稿を取得する。つまり、これらを実行すると『過去5日分の投稿データを全て取得する』という意味になる。