ループの直前に絞込みの指定をする事でカスタムタクソノミーの投稿の絞込みが可能です。
表示の内容はループ内で指定します。
指定の方法例
単一のタームの一覧
カスタム投稿タイプで指定したタームの一覧を表示
<?php $args = array( 'post_type' => 'カスタム投稿タイプA', 'tax_query' => array( array( 'taxonomy' => 'カスタムタクソノミーA', 'field' => 'slug', 'terms' => 'タームA1', ), ), ); $the_query = new WP_Query( $args ); ?>
指定したタームを除外した一覧
カスタム投稿タイプで指定したタームを除外した一覧を表示
‘operator’ => ‘NOT IN’ を使用します。
<?php $args = array( 'post_type' => 'カスタム投稿タイプA', 'tax_query' => array( array( 'taxonomy' => 'カスタムタクソノミーA', 'field' => 'slug', 'terms' => 'タームA1', 'operator' => 'NOT IN', ), ), ); $the_query = new WP_Query( $args ); ?>
複数のタームの一覧
カスタム投稿タイプで指定した複数のタームの一覧を表示
タームの部分を配列を使って指定
<?php $args = array( 'post_type' => 'カスタム投稿タイプA', 'tax_query' => array( array( 'taxonomy' => 'カスタムタクソノミーA', 'field' => 'slug', 'terms' => array( 'タームA1', 'タームA2' ), ), ), ); $the_query = new WP_Query( $args ); ?>
複数のカスタム投稿タイプと属する複数のタームを表示
カスタム投稿タイプA・BでタームA1・A2、タームB1・B2の何れかが指定している投稿を表示
<?php $args = array( 'post_type' => array('カスタム投稿タイプA','カスタム投稿タイプB'), 'tax_query' => array( array( 'taxonomy' => 'カスタムタクソノミーA', 'field' => 'slug', 'terms' => array( 'タームA1', 'タームA2' ), ), array( 'taxonomy' => 'カスタムタクソノミーB', 'field' => 'slug', 'terms' => array( 'タームB1', 'タームB2' ), ), 'relation' => 'OR' ) ); $the_query = new WP_Query( $args ); ?>
query_posts でも出来るよね?
WP_Query ではなく query_posts でも出来ますが、本来のページで表示されるデータではない表示をする場合(今回のカテゴリの一覧等)は、ページの読み込み速度が遅くなる事があるため、WP_Query または get_posts を使用した方が良いようです。
以下、WordPress Codex 日本語版のリンクです。