タクソノミーによる絞り込み検索を実装する場合などに必要になるやつです。
例えば、
タクソノミー名 |
タームスラッグ |
memo_category |
「wordpress」もしくは「jquery」 |
且つ、
タクソノミー名 |
タームスラッグ |
memo_tag |
「プラグイン」且つ「ターム」 |
という条件であれば、以下のようになります。
$args = array (
'post_type' => 'memo',
'posts_per_page' => '-1',
'tax_query' => array (
'relation' => 'AND',
array (
'taxonomy' => 'memo_category',
'field' => 'slug',
'terms' => array ( 'wordpress', 'jquery' ),
'operator' => 'IN'
),
array (
'taxonomy' => 'memo_tag',
'field' => 'slug',
'terms' => array ( 'プラグイン', 'ターム' ),
'operator' => 'AND'
)
)
);
query_posts( $args );
あまり使いませんが、
fieldに
term_idを指定することもできます。
relationと
operatorの指定が肝になりますね。
relation |
AND |
すべての条件に一致 |
OR |
いずれかの条件に一致 |
operator |
AND |
termsで指定した値が配列の場合すべての要素に一致 |
IN |
termsで指定した値が配列の場合いずれかの要素に一致 |
NOT IN |
termsで指定した値(配列の場合はすべての要素)に一致しない |
ちなみにこの方法は3.1から可能なのでご注意ください。
2013/04/23 修正:
showpostsは非推奨とされているため、
posts_per_pageに変えました。