year / monthnum / w / daytop-levelの年・月・週・日yearは4桁、monthnum 1–12、w 0–53、day 1–31date_query内ではmonthとweekというkey名になります。
PARAMETER REFERENCE
投稿日、更新日、年月、期間を、時刻とinclusiveの扱いまで含めて指定します。
迷っている条件に近い項目から確認し、必要な値と注意点へ進んでください。
パラメーター名だけでなく、何を決める値か、どの選択肢が使えるかを同時に確認します。
year / monthnum / w / daytop-levelの年・月・週・日yearは4桁、monthnum 1–12、w 0–53、day 1–31date_query内ではmonthとweekというkey名になります。
hour / minute / secondtop-levelの時・分・秒hour 0–23、minute/second 0–59細かい時刻条件はsite timezoneと保存列も確認します。
m連結した日時shortcutYYYYMM〜YYYYMMDDHHIISSyearやmonthnumなどと意味が重なりやすいため、Builderは併用warningを出します。
date_query.after / before開始・終了境界YYYY-MM-DD同じclauseへ両方入れると期間になります。afterがbeforeより後ならBuilderはerrorにします。
date_query.inclusive境界日を含めるtrue / false / defaultafter/beforeと一緒に使う時に意味が明確になります。
date_query.compare日付partの比較方法= / != / > / >= / < / <= / IN / NOT IN / BETWEEN / NOT BETWEENIN系は配列、BETWEEN系は二つの値を指定します。
date_query.column比較するDB列post_date / post_date_gmt / post_modified / post_modified_gmt通常はpost_dateです。更新履歴ならpost_modified、UTC基準ならGMT列を意図して選びます。
date_query.year / month / week / dayclause内の日付part単一整数、IN/BETWEEN系では整数配列無効な日付値は結果0件となり、WordPressがdoing_it_wrong noticeを出します。
date_query.hour / minute / secondclause内の時刻part単一整数、IN/BETWEEN系では整数配列保存時刻とsite timezoneのどちらを見ているか、columnと合わせて確認します。
date_query.relation複数clauseの関係AND / ORclauseが複数の時だけ出力します。
実装で起きやすい衝突を、条件を増やす前に確認します。
両方書けても、同じ日付条件を重ねると結果0件の原因を追いにくくなります。
境界となるafter/beforeがあって初めて、含む・含まないの意味がはっきりします。
公開日の絞り込みと誤読されないよう、post_modifiedを使う時はcodeにも説明にも残します。
そのまま貼るのではなく、対象post typeとtemplateの使い方に合わせて調整してください。
$args = [ 'post_type' => 'post', 'date_query' => [ [ 'after' => '2026-01-01', 'before' => '2026-03-31', 'inclusive' => true, 'column' => 'post_date', ], ],];仕様の最終確認対象WordPress versionのcode referenceも確認してください。WordPress Developer Resources
条件を組み合わせるときは、隣り合う分類の値や前提もあわせて確認すると設定漏れを防げます。
このページを活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。