Skip to content
さきどりふぁくとり~
  • Webマーケティング
  • WordPress
  • SEO
  • YouTube
  • お問い合わせ
  • 求人情報

プラグイン不要!WordPressで関連記事を出力する方法

更新日:2021年9月11日
  • WordPressで関連記事を出力したい
  • プラグインを導入していたが遅いため自前で関連記事を用意したい
上記のような内容でお困りですか? この記事ではWordPressで関連記事を出力するための方法をコードと共に解説します。

WordPressで関連記事を出力する方法

以下は実際に私がカスタムしている関連記事を出力するためのものです。
<div class="relatedposts">
    <h2>関連記事</h2>
    <?php
    $orig_post = $post;
    global $post;
    $tags = wp_get_post_tags($post->ID);//WordPressのタグから関連度を取得するためタグを取得します
    if ($tags) {
        $tag_ids = array();

        foreach ($tags as $individual_tag)
            $tag_ids[] = $individual_tag->term_id;
        $args = array(
            'tag__in' => $tag_ids,
            'post__not_in' => array($post->ID),
            'posts_per_page' => 4, // 表示する関連記事の数
            'caller_get_posts' => 1,
            'orderby' => 'rand', // 並び順はランダム
        );
        $my_query = new wp_query($args);
    ?>
        <div class="clearfix">
            <?php
            while ($my_query->have_posts()) {
                $my_query->the_post();

                $thumb = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail_size');
                if (!empty($thumb['0'])) {
                    $url = $thumb['0'];
                } else {
                    $url = get_template_directory_uri()."/images/noImage.png";
                } ?>

                <div class="related_box_ind inner">
                    <div itemscope itemtype='https://schema.org/ImageObject' class="thumbnail">
                        <a style="background-image:url(<?= $url ?>);" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" itemprop="url" class="thumbnail-img"></a>
                    </div>
                    <h5>
                        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                            <?php the_title(); ?>
                        </a>
                    </h5>
                    <div class="clearfix">
                        <p>
                            <?php
                            $cat = get_the_category();
                            $cat = $cat[0];
                            echo '<a href="' . get_bloginfo('url') . '/category/' . $cat->category_nicename . '">';
                            echo $cat->cat_name;
                            echo  '</a>';
                            ?>
                        </p>
                    </div>
                </div>
            <?php } // while文ここまで
            ?>
        </div>
    <?php
    } // IF文ここまで
    $post = $orig_post;
    wp_reset_query(); ?>
</div><!-- 関連記事 -->
重要な部分を解説します。
wp_get_post_tags($post->ID);
この関数は記事に設定されたタグを配列で取得します。
foreach ($tags as $individual_tag)
このループで取得したタグの一つ一つについて実行していくようになっています。
 $tag_ids[] = $individual_tag->term_id;
        $args = array(
            'tag__in' => $tag_ids,
            'post__not_in' => array($post->ID),
            'posts_per_page' => 4, // 表示する関連記事の数
            'caller_get_posts' => 1,
            'orderby' => 'rand', // 並び順はランダム
        );
        $my_query = new wp_query($args);
1つのタグに属する記事のクエリーを作成しています。この場合、あるタグに属している記事を4記事ランダムで取得しています。
while ($my_query->have_posts()) {
このコードはおなじみのコードですね。 WordPressで記事を出力するためのループです。 wp_query関数で取得してきた投稿についてすべての記事についてループで回していますね。
$thumb = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail_size');
こちらはある投稿のサムネイルの取得をするための鉄板の書き方ですね。 wp_get_attachment_image_src関数は以下のような内容を配列で返してきます。 [0] => url [1] => width [2] => height [3] => 真偽値: リサイズされいている場合は true、元のサイズの場合は false つまり、$thumb[0]にはサムネイルのURLが入ってますね。 その下の分岐ではサムネイルが無かったときにサムネイルが無い場合の標準画像を出力しています。 いかがでしたでしょうか? 関連記事というのは言ってしまえば同一のタグを持つ記事をランダムに出すことなので、予め記事に関連するタグを付けておく。 そして、現在表示中の記事が持つタグをループで回してそれに該当する記事を出力しているというわけです。 非常に軽量に動作しますのでプラグイン等が飽和してしまって少しでも簡略化したい場合におすすめですよ! 上記のプログラムを実際にページに組み込むにはどうすればよいのかを別記事にて解説したいと思います。

カテゴリー

  • AWS (3)
  • SEO (50)
  • SNS (16)
    • Facebook (7)
  • Webマーケティング (38)
  • WordPress (62)
  • YouTube (43)
  • プライバシー・ポリシー (1)
  • 未分類 (2)

プロフィール

ブログ運営・執筆または監修:
株式会社ルミナスネットワークス
https://www.luminous-networks.co.jp

代表取締役:生田 寿行

Webページ制作およびWebアプリケーションの設計~製造に至るまでをすべて通貫して行う独立系SIerです。
弊社はWebマーケティングに強いSIerとしての地位目指し、WEBページを制作することだけでなく、その先のWebマーケティングにも関係する内容を取り扱うことで、高いコストを掛けて制作したWEBページが無駄にならないようお客様を導くことを目標としております。 YouTubeマーケティングやその他SNSについても幅広い知見をもとにお客様をサポートして参ります。

本ブログで記載している内容は、必要に応じて環境を構築し、実際に調査・検証を行っており、より再現性・統計的な正当性の高いデータを目指したものとなっております。
参考にして頂けましたら幸いです。

投稿されている記事に関しまして、もっと深く知りたいという事がございましたら、無料で相談を受け付けておりますのでご遠慮無くお問い合わせください。

お仕事のご依頼・お問い合わせ

© 2023 さきどりふぁくとり~