MENU
  • プロフィールprofile
  • サービスService
    • WordPress個人レッスン
    • 起業女性に寄りそうWEBお悩み相談
  • 実績・お客さまの声portfolio
  • ブログblog
  • お問合せcontact

    カテゴリー

    • ホームページ個別レッスン
    • Web・SNS集客
    • Web系プログラミング
    • WordPressプログラミング
    • フリーランスの小技
    • Web活用相談
    • はじめてのWordPress
    • アメブロカスタマイズ
    • ホームページ制作
    • 自分で作れるおしゃれデザイン
    • アイデア・思考の整理

    タグ

    Adobe IllustratorGatsby.jsgitGitHubHTML/CSSMySQLNode.jsPythonSourcetreeSWELLWordPressおすすめWPプラグインおすすめツールアメブロエックスサーバーサーチコンソールセキュリティバレットジャーナルライブドアブログ環境構築確定申告開発環境

    アーカイブ

    • 2025年3月
    • 2025年1月
    • 2024年12月
    • 2024年3月
    • 2023年7月
    • 2023年1月
    • 2022年12月
    • 2022年11月
    • 2022年8月
    • 2022年4月
    • 2022年3月
    • 2022年2月
    • 2022年1月
    • 2021年12月
    • 2021年11月
    • 2021年10月
    • 2021年9月
    • 2021年8月
    • 2020年10月
    • 2020年8月
    • 2020年7月
    • 2020年6月
    • 2020年5月
    • 2020年4月
    • 2020年3月
    • 2020年1月
    • 2019年11月
    • 2019年9月
    • 2019年8月
    • 2019年5月
    • 2019年2月
    • 2019年1月
    • 2018年11月
    • 2018年9月
    • 2018年8月
    • 2018年7月
    • 2018年6月
    • 2017年10月
    • 2017年9月
    • 2017年7月
    個人事業主・女性起業家のためのWordPress・HP・ブログレッスン
    自分で作れる優しいホームページレッスン
    • プロフィールprofile
    • サービスService
      • WordPress個人レッスン
      • 起業女性に寄りそうWEBお悩み相談
    • 実績・お客さまの声portfolio
    • ブログblog
    • お問合せcontact
    自分で作れる優しいホームページレッスン
    • プロフィールprofile
    • サービスService
      • WordPress個人レッスン
      • 起業女性に寄りそうWEBお悩み相談
    • 実績・お客さまの声portfolio
    • ブログblog
    • お問合せcontact
    1. ホーム
    2. Web制作スキルアップ
    3. WordPressプログラミング
    4. WordPressテーマに関連記事を表示する

    WordPressテーマに関連記事を表示する

    2022 12/19
    WordPressプログラミング
    2018-07-262022-12-19

    ブログ記事に「関連記事」を用意し、同カテゴリーの記事を表示します。

    目次

    関連記事を表示するコード

    今回は投稿ページのテンプレートファイル(single.php)に、関連記事を表示させます。

    <?php if(has_category()){ // ①サブクエリを取得する
        //①-1 表示している記事のカテゴリー情報を取得する
        $cats = get_the_category();
        //①-2 カテゴリー情報からカテゴリーIDを配列に入れる
        $cat_id = array();
        foreach($cats as $data){
            $cat_id[] = $data -> cat_ID;
            }
    }
    // ①-3 カテゴリが同じ記事データをサブクエリに取得する
    $myposts = get_posts( array(
        'post_per_page' => '5', // 5件
        'category__in' => $cat_id, // カテゴリーID
        'exclude' => array($post ->ID), // 表示中の記事は除く
        'orderby' => 'rand', // ランダムで取得する
    ));
    
    // ②サブクエリで取得した記事データを表示する
    if($myposts) : // ②-1 記事があれば ?>
        <aside class="related-menu">
            <h2>関連記事</h2>
            <ul>
                <?php foreach($myposts as $post): // ②-2 各記事データについて以下の処理を行う
                    setup_postdata($post);// ②-3 記事リストから次の記事データを取得する?>
                    <li><a href="<?php the_permalink(); ?>">
                        <?php if ( has_post_thumbnail() ) {
                            the_post_thumbnail(); // ②-4 サムネイルを表示
                        }
                        the_title(); // ②-4 タイトルを表示 ?></a>
                    </li>
                <?php endforeach; ?>
            </ul>
        </aside>
    <?php wp_reset_postdata(); // ②−4 サブクエリの処理終わり。メインクエリに戻る
    endif; ?>

    コードの説明

    WordPressではURLに紐づくコンテンツ(タイトル、カテゴリー、記事本文、サムネイルなど)は自動で取得してくれます。

    しかし、関連記事は自動取得されるコンテンツには含まれない情報なので、新たに記事データを取得する必要があります。

    詳しくは、WordPressが記事を表示する仕組みをご覧ください。

    あわせて読みたい
    WordPressが記事を表示する仕組み〜メインクエリとサブクエリ〜 この記事では、WordPressの記事を表示する仕組みとコードの意味について整理してみました。 WordPressのサイトにアクセスしてからページが表示されるまで。 WordPressが…

    ①サブクエリ(メインの記事データにない情報)を取得する

    はじめに、カテゴリー情報を取得した後、get_posts()でどの記事データのリストを取得します。

    $myposts = get_posts( array(
        'post_per_page' => '5', // 5件
        'category__in' => $cat_id, // カテゴリーID
        'exclude' => array($post ->ID), // 表示中の記事は除く
        'orderby' => 'rand', // ランダムで取得する
    ));

    ②サブクエリから記事を取得して表示する

    if($myposts) : // ②-1 記事があれば
        foreach($myposts as $post): // ②-2 各記事データについて以下の処理を行う
            setup_postdata($post); // ②-3 記事リストから次の記事データを取得する
            // ②-4 ここで記事を表示するコードを書く
        endforeach;
        wp_reset_postdata(); // ②−5 サブクエリの処理終わり。メインクエリに戻る
    endif;

    setup_postdata($post)で、今回取得した記事データについて、タイトル表示the_title()やサムネイル表示the_post_thumbnailなど、記事表示用の関数が使えるようになります。

    wp_reset_postdataではサブの記事データ→メインの記事データに処理を切り替える処理をしています。

    • メイン:投稿の記事のデータ
    • サブ:関連記事の記事データ

    このページではメインとサブ2種類記事データを処理しているので、これがないと、以降の表示がおかしくなってしまうことがあります。

    表示されるHTML

    <aside class="related-menu">
        <h2>関連記事</h2>
        <ul>
            <li><img src="アイキャッチ画像><a href="記事1のURL">記事1の名前</a></li>
            <li><img src="アイキャッチ画像><a href="記事2のURL">記事2の名前</a></li>
            <li><img src="アイキャッチ画像><a href="記事3のURL">記事3の名前</a></li>
            <li><img src="アイキャッチ画像><a href="記事4のURL">記事4の名前</a></li>
            <li><img src="アイキャッチ画像><a href="記事5のURL">記事5の名前</a></li>
        </ul>
    </aside>
    

    あとは、CSSをカスタマイズすればOK

    WordPressプログラミング
    よかったらシェアしてね!
    中谷恵美
    あなたのお仕事を育てるホームページの先生
    システムエンジニア、ITコンサルタントを経て、フリーランスに。

    ・ホームページ作成
    ・ブログのカスタマイズ
    ・LINEやメルマガのセットアップ
    ・Canvaを使ったデザインの作り方
    ・Googleの分析ツール
    ・自分の強みを生かした集客
    などの、個人レッスンをしています。

    「仕事の発信に使えるようになりたい」
    「自分でも使えるスキルを身につけたい」
    ITが苦手な個人事業主さんに向けて、困ったときのWEB担当として幅広くサポートしています。

    HP作成のほかにも、心理カウンセラーとしても活動中。

    趣味は、文房具集め、ゲーム(牧場系とモンハン)、手芸(刺繍、洋裁)。
    運動が苦手で体が硬いのが悩み。今年、腰痛改善にジムに通い始めたが、果たして続くのか。。。
    詳しいプロフィールを見る
    活動実績

    【HP個人レッスン】

    ●ハワイアン伝統ロミロミサロン・Aさま
    ・2ヶ月でサロンのHPをリニューアル。新サービス立上げ時も自分でHPを作成できるように。
    「最初はパソコン音痴の私にできるか不安でしたが、とても丁寧な指導でわかりやすかったです。
    私好みの素敵なHPができあがり、とっても嬉しいです!」

    ●Mさま
    ・2回のミーティングでWordPress運営スキルを習得。オウンメディアを立上げ。

    ●Sさま
    ・5日間で無料ブログからWordPressへのお引越し。
    「半ば諦めかけていた移管を短期間で終えることが出来ました」

    【ホームページ作成】

    ●これまでご依頼いただいたお客さま
    (個人)写真家・美容サロン・弁護士・デザイナー・心理カウンセラー・占い師

    (法人)メーカー代理販売店、コンサルティング企業、人事支援企業

    【経歴・資格など】
    ・基本情報技術者
    ・簿記2級

    【営業時間】平日:10:00~19:00
    【休業日】土、日、祝、年末年始

    新着記事
    • 【お客様の声】ゴールが明確になり、とても安心できました
      2025-03-13
      Web・SNS集客
    • 【お客様の声】WordPressには自由度の高さを感じます
      2025-01-21
      ホームページ個別レッスン
    • WordPressに記事を一括アップロードするには
      2024-12-05
      はじめてのWordPress
    • 【お客様の声】等身大のちょっと先を提案してもらえた
      2024-03-08
      ホームページ個別レッスン
    • 【お客様の声】寄り添ってもらえたっていうのが一番心強かった
      2023-07-21
      ホームページ個別レッスン
    人気記事
    • 【CSSコピペOK】おしゃれな引用blockquoteデザイン10選
      2018-09-13
      WordPressプログラミング
    • 【Mac】SourcetreeからGitHubへSSH接続する
      2021-08-05
      Web系プログラミング
    • 【CSS】シンプルで女性らしい囲み枠デザイン48選
      2018-08-24
      アメブロカスタマイズ
    • 自分でできる。アメブロのおしゃれなカスタマイズまとめ
      2022-11-04
      アメブロカスタマイズ
    • Node.js+ExpressでMySQLに接続して一覧表示する
      2020-04-25
      Web系プログラミング
    目次