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冊から始めて今でもずっと見返す一冊です。

「この記事が役に立った!」方はこちら