まず結論
post_parent__in は、指定した親投稿IDを持つ子投稿だけを取得する WP_Query 引数です。親IDは配列で渡します。
固定ページや添付ファイルなど、親子関係を持つ投稿タイプで使います。通常投稿のように階層を使わない対象では意味がありません。
どういう時に使うか
複数の親ページ配下から子ページを集める時や、複数投稿に添付されたメディアを対象にする時に使えます。
直下の子だけを対象にする条件です。孫以下まで自動でたどる引数ではないため、階層全体が必要なら別途IDを集めます。
親IDが0の投稿を扱う場合は、トップレベルを意味することを明示し、空値と混同しないようにします。
近い引数との違い
post_parent は親IDを1つ指定し、post_parent__in は複数候補を配列で指定します。post_parent__not_in は指定した親を除外します。
投稿そのもののIDを選ぶ post__in とは対象が違います。こちらで指定するのは子投稿ではなく親投稿のIDです。
Builderでの扱い
WP Query Builder では親IDを複数入力できます。対象の投稿タイプが階層を持つかを一緒に確認できると親切です。
孫以下を含むように見えるラベルは避け、『指定した親を持つ投稿』と表示します。
使いどころ・避けどころと実践確認
指定した親投稿の直下にある子投稿を、複数の親IDからまとめて取得したい時に使います。
すべての子孫階層を再帰的に取得する指定だと考えたり、親自身も含むと想定したりしません。
投稿タイプが階層対応していても、実データの post_parent が期待IDかどうかは別に確認します。
この条件が見るのは直下の親子関係で、孫まで自動でたどる指定ではありません。
親、直下の子、孫、別親の子を用意し、各 post_parent 値と取得できた投稿IDを階層図にして照合します。
WordPressの仕様で確認するポイント
公式の Post & Page Parameters で、複数の親IDを受け付けることを確認します。
階層全体を再帰的に取得する機能ではない点は、実データの親子関係でも確かめます。
公式リンク
公式ドキュメント
最後は、値を変える目的と、変えた時に失う情報を一緒に確認します。
最後に確認したいこと
- 対象投稿タイプが親子関係を持つ
- 親IDの配列を渡した
- 孫以下は自動で含まれないと理解した
- post__inとの違いを確認した
公式リファレンス
仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。
この記事の検証情報
検証環境
- WordPress
- 7.1
- PHP
- 8.3.33
- テーマ
- wpq-media + DDEV
- 対象
- カスタム投稿 / taxonomy / meta_query
更新履歴
- 2026年5月26日 glossary 用の初回ドラフトを作成
- 2026年8月15日 公式資料を再確認し、用語集として本文と判断材料を再構成
この用語を活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。
他の用語も続けて確認できます
似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。