WPの投稿で、タクソノミーごとに一覧表示する方法

WordPressの投稿で、一つのカスタム投稿タイプに2つのタクソノミーを設定してあげて、タクソノミーごとに一覧を表示させてあげるやり方の健忘録。
例えば「書籍」という投稿タイプに「新品」と「中古」のタクソノミーを設定してあげて、それぞれ「小説」とか「ビジネス」とかのタームをぶら下げてあげる。
というときに、「新品」の一覧を表示したいけどどうする?という話です。
タクソノミーごとに出し分けるためのコード
<?php
$terms = get_terms('newbook'); //「新品」のタームを取得
$termList = [];
foreach ( $terms as $term ) {
$termList[] = $term->slug;
};
$args = array(
'post_type' => 'books', //投稿タイプを指定
'posts_per_page' => 10, //表示件数を指定
'tax_query' => array(
array(
'taxonomy' => 'newbook', //タクソノミーを指定
'field' => 'slug',
'terms' => $termList, //「新品」のタームを列挙
),
),
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
// 表示させたい内容
<?php
endwhile;
endif;
?>
コードの解説
‘tax_query’の’terms’で指定したタームだけを表示させることができるのですが、ここに「新品(=newbook)」のタームを列挙できたら解決♪という考え方です。
そのためにget_termsとforeach( $terms as $term )を使って「新品」のタームをすべて取得して、スラッグとして列挙してあげるという感じです。
こちらも参考にしてください↓↓
tax_queryについて
関数リファレンス/WP Query – WordPress Codex 日本語版
タクソノミーのパラメータについての解説です。
get_termsについて
関数リファレンス/get terms – WordPress Codex 日本語版
タームを取得についての解説です。
WordPress タクソノミーのターム一覧の表示方法 – by Takumi Hirashima
ターム取得の方法はこちらの方が分かりやすくまとめてくれています。
WordPressの勉強するならこの一冊
私自身、この1冊から始めて今でもずっと見返す一冊です。
リンク