WordPress

WordPress ターム一覧とそのタームに紐づく投稿の一覧を表示する方法

WordPress ターム一覧とそのタームに紐づく投稿の一覧を表示する方法

WordPress でターム一覧とそのタームに紐づく投稿の一覧を表示する方法を紹介します。
例えば、分類ごとに分けられた投稿を表示するようなコンテンツを作成したい場合に便利な方法です。

タームに紐づく投稿の一覧を表示

タームに紐づく投稿の一覧を表示する方法を紹介します。
タクソノミーが products-category で投稿タイプが products の場合。
例えば、ターム名を見出しとして表示して、そのタームに紐づく投稿の一覧を表示する場合、次のコードをテンプレートファイルに追加します。

<?php // タームに紐づく投稿の一覧を表示
$taxonomy_slug = 'products-category'; // カスタムタクソノミーのスラッグを指定
$post_type_slug = 'products'; // 投稿タイプのスラッグを指定
$terms = get_terms($taxonomy_slug); // タームを取得
foreach ( $terms as $value ) {
echo '<h2>'.esc_html($value->name).'</h2>'; // ターム名を表示
$term_slug = $value->slug; // タームに紐づく投稿一覧のクエリを設定
$args = array(
'post_type' => $post_type_slug, // 投稿タイプの指定
$taxonomy_slug => $term_slug , // タクソノミーからタームを指定
'posts_per_page' => -1, // タームに紐づく投稿を全てを表示
'post_status' => 'publish' // 公開済みの投稿を表示
);
$myquery = new WP_Query( $args );
?>
<?php if ( $myquery->have_posts()): ?>
<ul>
<?php while($myquery->have_posts()): $myquery->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php } // ループの終了 ?>

タクソノミーの指定は $taxonomy_slug = 'products-category’;products-category を変更。
投稿タイプの指定は $post_type_slug = 'products';products を変更してください。

まとめ

WordPress でターム一覧とそのタームに紐づく投稿の一覧を表示する方法を紹介しました。

スポンサーリンク

合わせて読みたい関連記事