まず結論
relation は、WP_Query の tax_query や meta_query で、複数の条件同士をどうつなぐかを指定する項目です。すべて満たすなら AND、どれか1つでよいなら OR を使います。
relation は、条件が複数ある時に意味を持ちます。カテゴリー条件が2つある、タグ条件とカテゴリー条件を組み合わせる、カスタムフィールド条件を複数書く、といった場面で使います。
初心者が迷いやすいのは、relation と operator、compare の違いです。relation は条件同士のつなぎ方です。operator は tax_query の1条件内で terms をどう扱うか、compare は meta_query の1条件内で値をどう比較するかを指定します。
relation は何を指定する項目か
relation は、複数の条件を AND または OR でつなぐための項目です。AND はすべての条件を満たす必要があり、OR はどれか1つを満たせば対象になります。
relation は、tax_query でも meta_query でも使われます。分類条件同士をつなぐ場合にも、カスタムフィールド条件同士をつなぐ場合にも、考え方は同じです。
ここで大事なのは、relation は複数条件の外側に置く項目だということです。1つの条件の中に入れても、条件同士のつなぎ方としては読みづらくなります。
まずは、条件が1つだけなら relation は不要、と考えると理解しやすくなります。条件が2つ以上になった時に、AND なのか OR なのかを決めます。
| relation | 意味 | 使う場面 |
|---|---|---|
AND | すべての条件を満たす投稿を取得する | カテゴリーもタグも一致する投稿、価格条件とフラグ条件を両方満たす投稿 |
OR | どれか1つの条件を満たす投稿を取得する | 複数カテゴリー条件のどれか、複数メタ条件のどれかに当てはまる投稿 |
relation、operator、compare の違い
relation と混同しやすいのが、operator と compare です。どれも条件に関係しますが、使う場所が違います。
relation は複数条件同士をつなぐ項目です。operator は tax_query の1条件内で terms をどう扱うかを決めます。compare は meta_query の1条件内でメタ値をどう比較するかを決めます。
たとえば、カテゴリー条件とタグ条件をつなぐなら relation です。1つのカテゴリー条件の中で複数タームをどう扱うかは operator です。
カスタムフィールドの価格が3000以上かどうかは compare の話です。メタ条件が2つ以上ある場合、それらをどうつなぐかが relation の話になります。
Builder での扱い
WP Query Builder では、relation は複数条件の結合方法として扱う想定です。初心者向けには、AND や OR だけを見せるより、「すべての条件を満たす」「どれかの条件を満たす」のように表示すると分かりやすくなります。
たとえば Builder では、カテゴリー条件とタグ条件を追加した後に、「条件のつなぎ方: すべて満たす / どれかを満たす」を選ばせ、内部で relation に変換します。
tax_query と meta_query の両方を扱う場合は、それぞれの中に別々の relation があり得ます。Builder では、分類条件の relation とカスタムフィールド条件の relation を混同しない表示が必要です。
使いどころ・避けどころと実践確認
複数の meta_query または tax_query の条件を、すべて満たすか一つでも満たすか決める時に使います。
一つの条件内の値比較や、ターム集合の IN・NOT IN を指定する項目としては使いません。
OR を増やすと想定外の投稿が広がり、入れ子の relation は読み違えや負荷の原因になるため、論理式を先に書きます。
文章で「AかつB」「AまたはB」と書いてから配列にすると、入れ子の位置を間違えにくくなります。
条件Aのみ、Bのみ、A+B、どちらもなしの投稿を作り、AND・ORで期待する投稿IDの集合を真理値表と照合します。
WordPressの仕様で確認するポイント
公式資料では、WP_Query の Taxonomy Parameters、Custom Field Parameters、WP_Tax_Query、WP_Meta_Query のリファレンスで relation の構造を確認できます。
relation は、tax_query と meta_query のどちらでも使われるため、どの配列の relation なのかを意識して読むことが大切です。
公式リンク
公式ドキュメント
relation は、複数条件同士をどうつなぐかを指定する項目です。すべて満たすなら AND、どれか1つでよいなら OR です。
迷った時は、条件を2つだけにして確認します。AND では結果が狭くなり、OR では結果が広くなることを確認してから、条件を増やすと安全です。
relation の最終チェック
relationは複数条件同士のつなぎ方だと理解しているANDはすべて満たす、ORはどれかを満たすと確認したoperatorやcompareと役割を混同していないrelationの位置が条件配列の外側にあることを確認した- まずは2条件だけの最小構成で取得できるか確認した
公式リファレンス
仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。
この記事の検証情報
検証環境
- WordPress
- 7.1
- PHP
- 8.3.33
- テーマ
- wpq-media + DDEV
- 対象
- カスタム投稿 / taxonomy / meta_query
更新履歴
- 2026年8月29日 本文と補助情報を更新
- 2026年8月15日 初回公開
この用語を活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。
他の用語も続けて確認できます
似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。