タクソノミーによって投稿を検索する方法について書きます。
$args = array( 'post_type' => 'movie', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => array( 'action', 'comedy' ), ), array( 'taxonomy' => 'actor', 'field' => 'slug', 'terms' => array( 'aaaa', 'bbbb', 'cccc' ), 'operator' => 'AND' ), ), ); $query = new WP_Query( $args );
以上のような条件で検索をかけたとします。
まず ’post_type’ => ‘movie’ でカスタム投稿タイプを’movie’に絞っています。
次にタクソノミーによって絞っています。今回は2つの条件で絞っています。
一つ目が’genre’で、これは’action’か’comedy’どちらかであれば条件を満たすとするという意味になります。
二つ目が’actor’で、これは一つ目と異なり’operator’として’AND’が指定してあります。これは’actor’が’aaaa’, ‘bbbb’, ‘cccc’のすべてを満たしていなければならないという意味になります。
‘operator’はデフォルトでは’IN’となっています。’IN’の他には’NOT IN’,’AND’,’EXISTS’,’NOT EXISTS’が指定可能です。このうち’IN’と’EXISTS’,’NOT IN’と’NOT EXISTS’はほとんど同じ意味を表していますが、処理速度やNULLが含まれる場合など微妙に違いがあるので注意が必要です。(参考: http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10104717260 )