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

関連記事とは

関連記事とは、ある記事の内容に関連するテーマや情報を持つ別の記事のことです。多くの場合、ウェブサイトやブログ、ニュースサイトなどで、読者がさらに興味を持ちそうな記事を見つけられるように、元となる記事の終わりやサイドバーに表示されます。

なぜ関連記事が表示されるのか?

  • ユーザー体験の向上: 読者が探している情報や興味のあるテーマに、より深くアクセスできるようにするためです。
  • サイト内の回遊率アップ: 関連記事を読んでもらうことで、ユーザーがサイトに滞在する時間が長くなり、他のページも見てくれる可能性が高まります。
  • SEO対策: 関連性の高い記事同士をリンクでつなげることで、検索エンジンがサイト全体の構造や各記事の重要性を正しく理解しやすくなります。

例えば、ラーメンの食べ歩きについての記事を読んだ後、「東京の人気ラーメン店10選」や「美味しいラーメンの作り方」といった記事が関連記事として表示されることがあります。これにより、読者は同じジャンルの記事を続けて読むことができるため、満足度が高まります。

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

WordPressで関連記事を表示するには、主に以下の2つの方法があります。

1. プラグインを利用する

これが最も簡単で、初心者にもおすすめです。多くのプラグインが無料で提供されており、設定も簡単です。

代表的なプラグイン

  • Yet Another Related Posts Plugin (YARPP): 非常に人気があり、タグ、カテゴリー、キーワードなどに基づいて柔軟に関連記事を抽出できます。
  • Contextual Related Posts: 記事の内容やタイトル、タグなどから関連性の高い記事を自動で表示します。
  • Jetpack: WordPressの公式プラグインで、関連記事表示機能も含まれています。

2. コードを直接テーマファイルに記述する

自分でコードを記述すれば、より細かくカスタマイズできますが、PHPやWordPressのテンプレートタグに関する知識が必要です。 以下に、カテゴリーが同じ関連記事を表示する基本的なスクリプトの例を示します。

スクリプトの例

このコードは、single.phpcontent-single.phpなど、記事の個別ページを表示するテンプレートファイルに追加します。

PHP

<?php
// 現在の記事のIDとカテゴリーを取得
$current_post_id = get_the_ID();
$categories = get_the_category();

// カテゴリーが一つでも存在するか確認
if ($categories) {
    $category_ids = array();
    foreach($categories as $category) {
        $category_ids[] = $category->term_id;
    }

    // クエリパラメータの設定
    $args = array(
        'post_type' => 'post', // 投稿タイプ
        'posts_per_page' => 5, // 表示する記事数
        'category__in' => $category_ids, // 取得したカテゴリーIDを含む
        'post__not_in' => array($current_post_id), // 現在の記事を除外
        '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();
    }
}
?>
Code language: HTML, XML (xml)

スクリプトの説明

  1. get_the_category(): 現在の投稿が属するカテゴリーを取得します。
  2. WP_Query: WordPressで投稿を検索するためのクラスです。$args配列で検索条件を指定します。
  3. category__in: 指定したカテゴリーIDに含まれる投稿を検索します。
  4. post__not_in: 検索結果から特定の投稿IDを除外します。ここでは現在表示している記事を除外しています。
  5. wp_reset_postdata(): WP_Queryでメインクエリを上書きした後に、元のクエリの状態に戻すために必ず使用します。これを忘れると、他のテンプレートタグが正常に動作しない場合があります。

どちらの方法を選ぶかは、WordPressの習熟度や、どの程度カスタマイズしたいかによります。簡単な方法から試して、慣れてきたらコードでの実装に挑戦してみるのが良いでしょう。

プラグインを利用せずコードを記述するメリットとデメリット

WordPressプラグインを利用せずにコードを記述する(すなわち、テーマの$\text{functions.php}$ファイルやカスタムプラグインとして直接コードを書く)ことには、いくつかのメリットとデメリットがあります。

メリット

パフォーマンスと効率

  • 軽量化: 必要な機能だけを厳選してコード化するため、不要な機能やオーバーヘッドがなくなり、サイトのロード時間が短縮され、パフォーマンスが向上する可能性が高いです。
  • クリーンなコード: プラグインの多くは汎用性を高めるために複雑になりがちですが、自作コードはサイト固有の要件に特化できるため、よりクリーンで効率的なコードベースを保てます。

柔軟性とカスタマイズ性

  • 完全な制御: コードの全行を自分で管理できるため、WordPressの動作を細部にわたって完全に制御し、既存のプラグインでは実現できないような独自の機能を実装できます。
  • 他の要素との統合: テーマや他のカスタム機能とのシームレスな統合が容易になります。

セキュリティと安定性

  • セキュリティリスクの低減: 信頼できないソースの外部プラグインを使用するリスクを回避できます。自作コードは必要な機能に限定されるため、潜在的なセキュリティホールも減らせます。
  • 依存関係の排除: 外部プラグインの更新によってサイトが壊れるリスクや、そのプラグインが開発停止になるリスクを排除できます。

デメリット

専門知識と時間

  • 高度なスキルが必要: PHP、WordPressのフック(アクションとフィルター)、セキュリティのベストプラクティスなど、専門的なコーディング知識が必要です。
  • 開発とメンテナンスの負荷: 既存のプラグインを使えば数分で済む機能でも、一からコードを書いて実装・デバッグ・テストするのに時間がかかります。また、WordPress本体やテーマのアップデートに合わせてコードを自分でメンテナンスし続ける必要があります。

バグとデバッグ

  • エラー発生のリスク: 自分で書いたコードは、予期せぬバグを引き起こすリスクがあります。特に$\text{functions.php}$ファイルへの直接的な誤った記述は、サイト全体をダウンさせる可能性があります。
  • デバッグの困難さ: バグが発生した場合、その原因を特定し修正する作業(デバッグ)もすべて自分で行う必要があります。

移植性と互換性

  • テーマへの依存: コードを$\text{functions.php}$に記述した場合、テーマを変更するとその機能は失われます。この問題を回避するには、カスタムプラグインとして作成する必要がありますが、これはさらに手間がかかります。

WordPressをカスタマイズする方法

WordPressをカスタマイズする主な方法と、それぞれの概要、難易度をまとめた表を作成しました。WordPressのカスタマイズは、目的や技術的なスキルレベルに応じて様々なアプローチがあります。

方法概要主な目的難易度
テーマの変更デザインの基本構造、レイアウトを一新します。無料・有料のものが多数あります。デザイン、全体的な機能の変更低〜中
テーマカスタマイザーWordPress標準機能で、テーマの色、フォント、ヘッダー画像などをコードを書かずに変更します。見た目の微調整、ロゴやウィジェットの設定
プラグインの導入既存のWordPressにない機能(お問い合わせフォーム、SEO対策、セキュリティ強化など)を追加します。機能の追加・拡張低〜中
CSSの追加テーマの見た目(色、サイズ、配置など)を細かく調整するために、カスタムCSSを追記します。デザインの微調整
子テーマの使用と編集親テーマを直接編集せず、子テーマを作成し、その中のファイル(functions.php やテンプレートファイルなど)を編集して機能を変更・追加します。機能やレイアウトの変更(テーマのアップデートに備える)中〜高
テーマファイルの直接編集親テーマのファイル(header.php, index.php など)を直接編集します。機能やレイアウトの根本的な変更
カスタムテーマ・プラグイン開発既存のものを使わず、ゼロから独自のテーマやプラグインをPHPなどを使い開発します。独自のデザインと機能の実装最も高

カスタマイズのヒント

  • 簡単な変更から始める場合は、「テーマカスタマイザー」や「プラグインの導入」が最も手軽です。
  • デザインを少し変えたい場合は、「CSSの追加」が強力です。
  • 本格的な機能追加やレイアウト変更を行う際は、テーマのアップデートで変更が消えないように「子テーマの使用と編集」を強くお勧めします。

WordPressテーマ カスタマイズのしやすさ 傾向比較

一般的にWeb上で言われている評判や特徴に基づいて、「コード知識が少ない人が、手軽にデザインを変更できる(=カスタマイズしやすい)」という視点での傾向をまとめています。

順位 (※傾向)テーマ名主な特徴とカスタマイズの傾向
1THE THOR(ザ・トール)専用カスタマイザー機能が非常に豊富で、コードを書かずに細部までデザインを変更できる。多機能ゆえに操作が複雑に感じる場合もあるが、カスタマイズの幅は広い。
2STORK SE(ストークSE)シンプルな構造で、初心者でも迷いにくい設計。ブログ運営に特化した機能が充実しており、特別な知識がなくても見栄えの良いデザインになりやすい。
3Emanon(エマノン)マーケティング・ビジネスサイト向け。専用ブロックやウィジェットが用意されており、必要な要素を簡単に配置できる。多機能なPro版などがある。
4LIQUID PRESS(リキッドプレス)標準機能は抑えつつも、カスタマイズの拡張性が高い。知識があれば自由に変更しやすいが、THE THORほど専用設定項目は多くない傾向。
5RE:DIVER(リダイバー)比較的新しいテーマで、Webサイト制作向けのモダンなデザインが特徴。専用機能でのカスタマイズと、コードカスタマイズのバランスが取れている。
6GOLD MEDIA(ゴールドメディア) / GOLD BLOG(ゴールドブログ)開発元が同じで、多機能性を売りにしていることが多い。多機能ゆえに初心者には難しいと感じる部分もあるが、専用のオプションは用意されている。

インターネットビジネスは、インターネットやIT技術を活用して商品やサービスを提供し、収益を得るビジネス全般を指します。企業の規模に関わらず、非常に多岐にわたる活動が含まれます。
企業がインターネットビジネスに必要とされる知識

  • SEO(検索エンジン最適化) | マーケティング | データ分析【デジタルマーケティングの知識】
  • WEBサイトの仕組み | ECサイト運営 | セキュリティ対策【Web制作・技術の知識】
  • 事業計画 | 特定商取引法 | 景品表示法 | 知的財産権 | ITリテラシー【ビジネス・法律の知識】

インターネットビジネスに活用したいWEBサービス

WordPressの使い方(中小企業のマーケティング向け)