まず結論
post__in は、指定した投稿IDだけを取得対象にする WP_Query 引数です。IDの配列を渡します。
配列に書いた順で表示したい場合は、orderby => ‘post__in’ も必要です。対象を選ぶことと順番を保つことは別です。
どういう時に使うか
編集画面で選んだおすすめ記事、外部処理が返した投稿ID、手動で確定した掲載候補などをまとめて取得する時に使います。
空配列を渡した時の挙動を『0件になる』と決めつけないでください。呼び出し前に空かを判定し、クエリ自体を実行しない方が確実です。
IDは整数へ整形し、閲覧権限や post_status の条件も別に確認します。IDがあるだけで公開可能とは限りません。
近い引数との違い
post__in は含めるID、post__not_in は除外するIDです。WP_Query では両方を同じクエリへ併用できません。
orderby => ‘post__in’ は、指定したID配列の順序を並び順として使う指定です。post__in 単独ではその順序は保証されません。
Builderでの扱い
WP Query Builder ではIDを複数入力できます。空欄や0、重複IDを整理してから配列へ出力します。
手動順を使う選択肢を出す場合は、orderby=post__in もセットで生成されることを画面に示します。
使いどころ・避けどころと実践確認
選択した投稿IDだけを対象にする、手動推薦や固定リストのような要件に使います。
除外用の post__not_in と同じIDを同時指定したり、スラッグ配列を渡したりしません。
配列が空になるケースでは意図せず全件へ広がる可能性を考え、実行前に空入力を処理します。
手動で選んだ順番も守りたい場合は、IDを絞るだけでなく orderby => ‘post__in’ までが一組です。
存在するID、存在しないID、空配列、複数IDを試し、取得できた投稿IDと順序をケースごとに記録します。
WordPressの仕様で確認するポイント
公式の Post & Page Parameters で、配列指定と post__not_in との併用不可を確認します。
Order & Orderby Parameters では、入力順を保つ post__in の並び指定を確認できます。
公式リンク
公式ドキュメント
最後は、値を変える目的と、変えた時に失う情報を一緒に確認します。
最後に確認したいこと
- 投稿IDを整数配列で渡した
- 空配列ならクエリを実行しない
- post__not_inと併用していない
- 手動順が必要ならorderby=post__inを指定した
公式リファレンス
仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。
この記事の検証情報
検証環境
- WordPress
- 7.1
- PHP
- 8.3.33
- テーマ
- wpq-media + DDEV
- 対象
- カスタム投稿 / taxonomy / meta_query
更新履歴
- 2026年5月26日 glossary 用の初回ドラフトを作成
- 2026年8月15日 公式資料を再確認し、用語集として本文と判断材料を再構成
この用語を活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。
他の用語も続けて確認できます
似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。