cat / category_name単一カテゴリーをID・slugで指定catはID、category_nameはslug簡単な条件向けです。複雑なcategory条件はtax_queryへ寄せます。
PARAMETER REFERENCE
shortcutとtax_queryを使い分け、termの一致条件を読みやすく組みます。
迷っている条件に近い項目から確認し、必要な値と注意点へ進んでください。
パラメーター名だけでなく、何を決める値か、どの選択肢が使えるかを同時に確認します。
cat / category_name単一カテゴリーをID・slugで指定catはID、category_nameはslug簡単な条件向けです。複雑なcategory条件はtax_queryへ寄せます。
category__and / category__in / category__not_in複数カテゴリーをすべて含む・どれか含む・除外category IDの配列ANDとINは意味が違います。記事が全termを持つ必要があるなら__andです。
tag / tag_id単一タグをslug・IDで指定tagはslug、tag_idはID入力形式を取り違えないようmodeと値をセットで確認します。
tag__and / tag__in / tag__not_intag ID配列で一致・除外tag IDの配列__andは全tag、__inはいずれかのtagを持つ投稿です。
tag_slug__and / tag_slug__intag slug配列で一致tag slugの配列環境間でIDが変わる運用ではslug指定が読みやすい場合があります。
tax_query.taxonomy対象taxonomycategory / post_tag / custom taxonomy slugfield=term_taxonomy_id以外では有効なtaxonomy名が必要です。
tax_query.field / termstermの指定形式と値term_id / slug / name / term_taxonomy_idfieldとtermsの形式を揃えます。EXISTS/NOT EXISTSではtermsを使いません。
tax_query.operatorclause内の一致方法IN / NOT IN / AND / EXISTS / NOT EXISTSINはどれか、ANDはすべて、EXISTS系はそのtaxonomyのterm有無を見ます。
tax_query.include_children子termを含めるtrue / false / default(true)階層taxonomyで効く指定です。親だけを厳密に見るならfalseを検討します。
tax_query.relation複数clauseの関係AND / ORclauseが一つならrelationは不要です。relationはclause間、operatorは一つのclause内を決めます。
実装で起きやすい衝突を、条件を増やす前に確認します。
category_*とtax_query(category)、tag*とtax_query(post_tag)は書けますが、条件を追いにくくします。
operatorは一つのtaxonomy条件、relationは複数の条件ブロック同士をどう結ぶかです。
同じDB内で確実に指定するならID、環境間で内容を移すならslugが読みやすいなど、更新方法まで含めて選びます。
そのまま貼るのではなく、対象post typeとtemplateの使い方に合わせて調整してください。
$args = [ 'post_type' => 'post', 'tax_query' => [ 'relation' => 'AND', [ 'taxonomy' => 'category', 'field' => 'slug', 'terms' => [ 'news' ] ], [ 'taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => [ 'featured' ] ], ],];仕様の最終確認対象WordPress versionのcode referenceも確認してください。WordPress Developer Resources
条件を組み合わせるときは、隣り合う分類の値や前提もあわせて確認すると設定漏れを防げます。
このページを活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。