【WordPress】プラグインなしで関連記事を表示する方法

WordPressサイトで関連記事を表示することで、ユーザーが興味を持つ他のコンテンツに簡単にアクセスでき、サイトの滞在時間を増やすことができます。この記事では、プラグインを使用せずにテーマファイルにコードを追加して関連記事を表示する方法を紹介します。

関連記事を表示するテンプレートファイルの選定

まず、関連記事を表示したいテンプレートファイルを決定します。通常、個別投稿ページのテンプレートである single.php や content-single.php にコードを追加します。これらのテンプレートは、投稿の詳細ページを表示する際に使用されます。

関連記事を取得するカスタムクエリの追加

関連記事を取得するために、カスタムクエリを作成します。このクエリでは、現在の投稿のカテゴリに基づいて、同じカテゴリの他の投稿をランダムに取得します。以下に、その具体的なコードを示します。

<?php
// 現在の投稿IDを取得
$current_post_id = get_the_ID();

// 現在の投稿のカテゴリIDを取得
$categories = wp_get_post_categories($current_post_id);

if ($categories) {
    // 関連記事を取得するカスタムクエリ
    $args = array(
        'category__in' => $categories, // 現在の投稿と同じカテゴリ
        'post__not_in' => array($current_post_id), // 現在の投稿を除外
        'posts_per_page' => 5, // 表示する関連記事の数
        'orderby' => 'rand' // ランダムな順序で表示
    );

    $related_posts = new WP_Query($args);

    if ($related_posts->have_posts()) {
        echo '<h3>関連記事</h3>';
        echo '<ul>';

        while ($related_posts->have_posts()) {
            $related_posts->the_post();
            ?>
            <li>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </li>
            <?php
        }

        echo '</ul>';

        // クエリをリセット
        wp_reset_postdata();
    }
}
?>

デザインのカスタマイズ

関連記事の表示をより魅力的にするために、CSSを使用してスタイルをカスタマイズできます。例えば、以下のようにCSSを追加することで、見た目を整えることができます。

.related-posts {
    margin-top: 20px;
}

.related-posts h3 {
    font-size: 1.5em;
    margin-bottom: 10px;
}

.related-posts ul {
    list-style-type: none;
    padding: 0;
}

.related-posts ul li {
    margin-bottom: 5px;
}

.related-posts ul li a {
    text-decoration: none;
    color: #0073aa;
}

.related-posts ul li a:hover {
    text-decoration: underline;
}

実装の確認と調整

コードを追加したら、実際にサイト上で関連記事が正しく表示されるか確認します。表示する投稿の数や順序など、必要に応じて調整を行いましょう。

まとめ

WordPressでプラグインを使わずに関連記事を表示する方法を紹介しました。カスタムクエリを使用することで、カテゴリやタグに基づいた関連記事を表示でき、ユーザーのサイト内回遊率を高めることができます。ぜひ、この方法を試してみてください。