投稿の日付を期間で絞るならdate_queryを使います
投稿日や更新日を基準に記事を絞るときは、date_queryへafterとbeforeを指定します。開始日・終了日を含めるならinclusive => trueを加え、通常の投稿日ならcolumnは既定のpost_dateで構いません。
ACFなどのカスタムフィールドに保存した開催日はdate_queryではなくmeta_queryの対象です。まず「WordPressの投稿日時」と「独自に保存した日付」のどちらを見たいかを分けましょう。
最初に、どの日付で絞り込むかを決める
date_queryで絞り込めるのは、投稿テーブルにある公開日時・更新日時です。「2026年4月に公開したお知らせ」「先週更新した記事」のような条件に向いています。
| 絞り込みたい日付 | 使う条件 | 代表的な指定 |
|---|---|---|
| 投稿の公開日時 | date_query | post_date(既定) |
| 投稿の更新日時 | date_query | post_modified |
| GMTの公開日時 | date_query | post_date_gmt |
| ACFの開催日・期限 | meta_query | event_dateなどのメタキー |
独自に設けた「イベントの開催日」という項目は、記事の投稿日とは別項目です。たとえば5月に公開したイベント記事の開催日が8月なら、post_dateは5月、ACFのevent_dateは8月です。開催予定だけを出したい場合は、次のACF日付の記事へ進んでください。
ACFの日付で絞るACFの日付フィールドをWP_Queryで絞り込む方法開催日など、カスタムフィールドへ保存した日付をmeta_queryで比較する手順です。
記事を読むWP Query Builderで開始日・終了日・境界を入力する
公開中のWP Query Builderで「詳細設定(全項目)」を選び、「Date Query(日付の条件)」を開きます。この記事の基本例では、次の値を入力します。
| 入力欄 | 値 | 意味 |
|---|---|---|
| 投稿タイプ | post | 通常投稿を対象にする |
| 公開状態 | publish | 公開済みだけにする |
| 取得件数 | 5 | 最大5件を表示する |
| 並び方向 / order | DESC | 新しい日付から並べる |
| 並べ替えの基準 / orderby | date | 投稿日を基準にする |
| 開始日 / after | 2026-04-01 | 4月1日以降 |
| 終了日 / before | 2026-04-30 | 4月30日以前 |
| 境界日を含める / inclusive | true | 開始日と終了日も含める |
| 固定表示を無視 / ignore_sticky_posts | true | 独自一覧の日付順を保つ |
「Date 条件の組み方」はdate_queryで組む、「対象の日付」は既定のpost_dateです。Performance / Cacheでは「固定表示を無視」をtrueにし、先頭固定の記事が日付順へ割り込まないようにしました。自動高速化はOFFにし、この記事で説明する条件だけが生成される状態にしています。

開始日・終了日・境界日と、固定表示を無視する指定がWP Query Builderの生成コードへ反映されています。
次は、この画面でWP Query Builderが生成したコードです。配列のキー順や書式は変更していません。
引数や処理の一部分だけを示した例です。このまま単独で貼らず、テンプレート内のWP_Queryとループへ組み込んでください。
$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 5, 'order' => 'DESC', 'orderby' => 'date', 'date_query' => array( array( 'after' => '2026-04-01', 'before' => '2026-04-30', 'inclusive' => true ) ), 'ignore_sticky_posts' => true);afterとbeforeは同じ条件配列へ入れます。これで「4月1日以降」かつ「4月30日以前」です。この例ではinclusive => trueも指定しているため、4月1日と4月30日を含みます。含めたくない場合はfalseにします。省略した場合の既定値は、後ほど境界日の比較で説明します。posts_per_pageは期間内の総件数ではなく、返す最大件数を決めています。
生成した条件は、本番サイトへ直接貼る前に、投稿データを分けたWordPress環境で確認します。検証環境やバックアップ先をこれから用意する場合は、Xserverの対応PHPやバックアップ条件も公式情報で確かめられます。
生成された$argsを表示ループへつなぐ
WP Query Builderが作るのは$argsです。記事タイトルを一覧へ出すには、WP_Queryへ渡す処理と表示ループを追加します。次の完成例では、上の生成配列を変更せずに使っています。
<?php$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 5, 'order' => 'DESC', 'orderby' => 'date', 'date_query' => array( array( 'after' => '2026-04-01', 'before' => '2026-04-30', 'inclusive' => true ) ), 'ignore_sticky_posts' => true); $period_query = new WP_Query( $args ); if ( $period_query->have_posts() ) : ?> <section aria-labelledby="april-posts-title"> <h2 id="april-posts-title">4月の記事</h2> <ul> <?php while ( $period_query->have_posts() ) : ?> <?php $period_query->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <time datetime="<?php echo esc_attr( get_the_date( DATE_W3C ) ); ?>"> <?php echo esc_html( get_the_date( 'Y年n月j日' ) ); ?> </time> </li> <?php endwhile; ?> </ul> </section> <?phpelse : echo '<p>この期間の記事はありません。</p>';endif; wp_reset_postdata();クラシックテーマの子テーマなら、このファイルをtemplate-parts/april-posts.phpとして保存し、表示したい固定ページテンプレートのメインループ内で本文の後から呼びます。
引数や処理の一部分だけを示した例です。このまま単独で貼らず、テンプレート内のWP_Queryとループへ組み込んでください。
<?php get_template_part( 'template-parts/april-posts' ); ?>WP_Queryのループが終わったらwp_reset_postdata()で投稿データを元へ戻します。テンプレートへ直書きする場合も、同じ一覧コードを複数箇所へ重複して貼らないようにしてください。

期間内には6件ありますが、posts_per_pageが5なので、投稿日が新しいID15〜11を表示します。
期間と対象日付を選んで$argsを作る
after・before・inclusiveと、投稿日・更新日のcolumnを選べます。生成後は表示ループへつなぎ、実際の投稿で境界日と件数を確認してください。
境界・年月・対象列を使い分ける
開始日と終了日を含めるか、年・月だけで指定するか、どの日付列を調べるかを順に使い分けます。
inclusiveで開始日と終了日を含める
inclusiveを省略した場合の既定値はfalseです。afterとbeforeに指定した境界そのものを含めたいときはtrueにします。
分離した検証環境で、投稿日が4月8日・11日・16日・22日の4件を対象に比較しました。trueでは両端を含む4件、falseでは両端を除いた2件です。

同じ投稿データと期間でinclusiveだけを切り替えた結果です。
年・月だけで絞る方法を使い分ける
「2026年4月」のように年月が決まっている場合は、date_queryの1条件へyearとmonthを入れられます。
引数や処理の一部分だけを示した例です。このまま単独で貼らず、テンプレート内のWP_Queryとループへ組み込んでください。
$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 5, 'date_query' => array( array( 'year' => 2026, 'month' => 4, ), ),);WP_Query直下にもyearとmonthnumがあります。WP Query Builderでは「Date 条件の組み方」をtop-levelだけ使うへ切り替えると入力できます。直下はmonthnum、date_query内はmonthと名前が違う点に注意してください。
| 書く場所 | 月のキー | 向いている指定 |
|---|---|---|
| date_query内 | month | 期間・複数条件・columnを使う指定 |
| WP_Query直下 | monthnum | 単純な年・月の指定 |
両方を同時に使うと、条件が上書きされるのではなく、原則として両方を満たす投稿へ狭まります。理由がなければ、同じ年月を二重に指定しないでください。
投稿日・更新日・GMTのcolumnを選ぶ
columnを省略するとpost_dateです。管理画面で設定した公開日時を基準にする一般的な記事一覧では、そのままで構いません。
| column | 見る値 | 使う前の確認 |
|---|---|---|
| post_date | サイトのタイムゾーンで扱う公開日時 | 通常の投稿日一覧か |
| post_modified | サイトのタイムゾーンで扱う更新日時 | 更新によって一覧が動いてよいか |
| post_date_gmt | GMTの公開日時 | 外部システムとGMTで比較する必要があるか |
| post_modified_gmt | GMTの更新日時 | 更新日時をGMTで扱う設計か |
orderby => dateは並び順、date_queryは取得範囲です。期間を変えずに更新日順へ並べたい場合と、更新日そのものを期間条件にしたい場合を混同しないでください。
日付順を確認するWP_Queryで記事の日付順がうまくいかない原因絞り込みではなく並び順が合わない場合に、orderbyとカスタムフィールド日付を切り分けます。
記事を読むカテゴリーや検索語と組み合わせるときはANDになる
WP_Query直下へdate_queryとtax_queryやmeta_queryを並べると、それぞれの条件をすべて満たす投稿が対象です。たとえば「4月に公開され、newsカテゴリーにも属する投稿」です。
date_query内に条件を複数置く場合は、その中のrelationへANDまたはORを指定できます。一方、date_queryとmeta_queryをまたいだORは、通常のWP_Query引数だけでは表現できません。
AND・ORを整理するWP_Queryで複数条件を組み合わせる方法どの条件にAND・ORを指定できるかを整理し、通常の引数では作れない組み合わせを避けるための入口です。
記事を読む実装後は境界・0件・タイムゾーンまで確認する
日付条件は、範囲内の1件を見るだけでは境界のずれを見つけにくいため、前後を含む小さなデータで確認します。
取得結果を確認する順番
- 1対象の投稿に、開始日前・開始日・期間内・終了日・終了日後の日時を用意する
- 2inclusive trueとfalseで両端の投稿が変わるか確認する
- 3posts_per_pageより多い投稿がある場合、表示件数と並び順を確認する
- 40件の期間で代替メッセージが出るか確認する
- 5サイトのタイムゾーンと、GMT列を選んでいないか確認する
- 6一覧後のタイトルや本文が元の固定ページへ戻るか確認する
相対日付の文字列は実行日によって結果が変わります。記事や検証記録として再現したい場合は、まず固定日付で期待するIDを確認してから、必要ならcurrent_time()などを使う動的条件へ置き換えます。
date_queryの最終チェック
- 投稿の公開日時・更新日時と、ACFなどの独自日付を分けた
- afterとbeforeを同じ条件配列へ入れた
- 境界日を含めるかinclusiveで明示した
- columnを省略する理由、または変更する理由を説明できる
- 年・月の直下指定とdate_queryを二重に入れていない
- 開始日前・境界日・期間内・終了日・終了日後で取得結果を確認した
- 独自ループ後にwp_reset_postdata()を実行した
date_queryの公式資料を確認する
境界日、日付列、年月のキーはWordPress公式資料で確認できます。実装時に迷ったら、次の項目へ戻ってください。
date_queryのよくある質問
最後に、実装時に混同しやすい日付の種類と境界指定を短く整理します。
この記事の検証情報
検証環境
- WordPress
- 7.1
- PHP
- 8.3.33
- テーマ
- wpq-media + DDEV
- 対象
- カスタム投稿 / taxonomy / meta_query
更新履歴
- 2026年9月14日 初回公開
この記事を活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。


