WB名古屋のネタその4です。カスタム分類のクエリです。
WP3.0では、複数のカスタム分類のクエリは未対応(mysqlに直接する方法はありますが)でした。
※今回の記事はcodexが未整備のため、ソースを読みながら行っていますが、全ての検索オプションを検証しきれていませんのでご注意ください。※
3.1 では、tax_query引数が追加されました。複雑なクエリを発行できるようになりました。
$query = new WP_Query( array(
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'areas',
'field' => 'slug',
'terms' => 'hokkaido,tokyo'
'operator' => 'IN'
)
)
));
relationは、検索方法(taxonomy.phpを読むと、ORまたはAND、デフォルトANDらしいです)を指定します。
taxonomyは分類名、termsはタームスラッグ/IDです。fieldでタームスラッグ/IDのどちらで指定するかを指定します。operatorは検索条件を指定します。codexでは’LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘BETWEEN’, ‘NOT BETWEEN’となっていましたが、taxonomy.phpを読むと、’AND’, ‘IN’, ‘NOT IN’ のようです。