WordPressのカスタム投稿で設定したカスタムタクソノミーのタームに属している記事一覧を表示させたい!という時があった場合、以下のように記述することで特定のタームの記事一覧を表示させることが可能になります!

まず例として記事一覧のソースコードを以下とします。

<ul>
	<li><a href="記事のURL">記事タイトル</a></li>
	<li><a href="記事のURL">記事タイトル</a></li>
	<li><a href="記事のURL">記事タイトル</a></li>
	<li><a href="記事のURL">記事タイトル</a></li>
	<li><a href="記事のURL">記事タイトル</a></li>
</ul>

特定のタームの記事一覧を表示させるには

 今回は以下のような条件で記事一覧を表示したく思います。

  • カスタム投稿:test
  • 表示件数:10件
  • カスタムタクソノミー:test_taxonomy
  • ターム:test-term

上の条件でページに一覧表示させるには、以下のようにPHPコードを記述することで表示可能になります。

<ul>

	<?php
		$custom_posts = get_posts(array(
			'post_type' => 'test',
			'posts_per_page' => 10,
			'tax_query' => array(
				array(
					'taxonomy' => 'test_tanonomy',
					'field' => 'slug',
					'terms' => 'test-term'
				)
			)
		));
		global $post;
	?>
	<?php if($custom_posts): ?>

		<?php foreach($custom_posts as $post): setup_postdata($post); ?>

			<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

		<?php endforeach; ?>

	<?php endif; wp_reset_postdata(); ?>

</ul>

カスタム投稿の指定

 まず5行目の

'post_type' => 'test',

にてカスタム投稿を指定します。

今回はtestというカスタム投稿にあるタームの記事一覧を表示させたいため、testと指定しています。

表示件数の指定

 続いて6行目の

'posts_per_page' => 10,

にて表示件数を指定します。

今回は1ページにつき10記事表示させたいため、10と指定しています。

カスタムタクソノミーの指定

 続いて9行目の

'taxonomy' => 'test_tanonomy',

にてカスタムタクソノミーを指定します。

今回はtest_taxonomyというカスタムタクソノミーに設定されたタームの記事一覧を表示させたいので、test_taxonomyと指定しています。

タームの指定

 最後に11行目の

'terms' => 'test-term'

にてタームを指定します。

今回はtest-termに属する記事を一覧表示させたいので、test-termと指定しています。

まとめ

 以上が特定のタームに属している記事一覧を表示させる方法でした!

カスタム投稿は慣れるまでは一癖ありますが、仕組みを理解できたらサイト制作の上でとても便利なシステムだと思うので、是非ともマスターしましょう!

スポンサーリンク