ウェベン!

WPの投稿で、タクソノミーごとに出し分けて表示する方法

WordPressの投稿で、一つのカスタム投稿タイプに2つのタクソノミーを設定してあげて、タクソノミーごとに一覧を表示させてあげるやり方の健忘録。

例えば「書籍」という投稿タイプに「新品」と「中古」のタクソノミーを設定してあげて、それぞれ「小説」とか「ビジネス」とかのタームをぶら下げてあげる。
というときに、「新品」の一覧を表示したいけどどうする?という話です。

タクソノミーごとに出し分けるためのコード

<?php
$terms = get_terms('newbook'); //「新品」のタームを取得
foreach ( $terms as $term ) {
	$args = array(
		'post_type' => 'books', //投稿タイプを指定
		'posts_per_page' => 10, //表示件数を指定
		'tax_query' => array(
			array(
			'taxonomy' => 'newbook', //タクソノミーを指定
			'field' => 'slug',
			'terms'    => array( $term->slug ), //「新品」のタームを列挙
			),
		),
	);
};
$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 )を使って「新品」のタームを取得して、
array( $term->slug )を使ってスラッグとして列挙してあげたという感じです。

こちらも参考にしてください↓↓

tax_queryについて

関数リファレンス/WP Query – WordPress Codex 日本語版

タクソノミーのパラメータについての解説です。

get_termsについて

関数リファレンス/get terms – WordPress Codex 日本語版

タームを取得についての解説です。

WordPress タクソノミーのターム一覧の表示方法 – by Takumi Hirashima

ターム取得の方法はこちらの方が分かりやすくまとめてくれています。

キーワード: