スポンサーリンク

wordpressでターム一覧とそのタームの記事一覧を表示する方法

PHP

WordPressでは、特定のターム(カテゴリーやタグなど)とそのタームに属する記事の一覧を表示することが可能です。忘れやすいのでメモです。

1. ターム一覧の表示

まずはターム一覧を表示する方法を見ていきましょう。以下のコードは、特定のタクソノミー(ここでは’category’)のすべてのタームを一覧表示します。

<?php
$taxonomy = 'category'; // ターム一覧を表示したいタクソノミー

$terms = get_terms(array(
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
));

if (!empty($terms) && !is_wp_error($terms)) :
    foreach ($terms as $term) :
        echo '<h2>' . $term->name . '</h2>';
        // ここで各タームの記事一覧を表示
    endforeach;
endif;
?>

 

2. タームごとの記事一覧の表示

次に、各タームに属する記事の一覧を表示します。これには、上記のforeachループ内でWP_Queryを使います。

<?php
$taxonomy = 'category'; // ターム一覧を表示したいタクソノミー

$terms = get_terms(array(
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
));

if (!empty($terms) && !is_wp_error($terms)) :
    foreach ($terms as $term) :
        echo '<h2>' . $term->name . '</h2>';

        $args = array(
            'post_type' => 'post',
            'tax_query' => array(
                array(
                    'taxonomy' => $taxonomy,
                    'field'    => 'slug',
                    'terms'    => $term->slug,
                ),
            ),
        );
        
        $query = new WP_Query($args);
        
        if ($query->have_posts()) :
            while ($query->have_posts()) : $query->the_post();
                echo '<h3><a href="' . get_permalink() . '">' . get_the_title() . '</a></h3>';
                // 必要に応じて他の投稿データ(投稿日、抜粋など)を表示します
            endwhile;
            wp_reset_postdata();
        else :
            echo '<p>該当する投稿がありません。</p>';
        endif;
    endforeach;
endif;
?>

 

このコードは、各カテゴリーの名前とそのカテゴリーに属する記事の一覧を表示します。表示する内容はカスタマイズ可能で、タイトル以外にも投稿日、抜粋、フィーチャーイメージなどを表示することができます。

以上がWordPressで特定のタームとそのタームに属する記事の一覧を表示する基本的な方法です。コードは必要に応じてカスタマイズし、特定のプロジェクトや要件に適合させてください。

コメント

タイトルとURLをコピーしました