22:00よりサイトのメンテナンスを開始します×

エーデルハーツ

Custom WordPress Support & Development

WordPress 3分間フッキング:個別記事の最後に前後記事リンクを表示する方法

8 views

こんにちは!埼玉県川越市を拠点に、WordPress開発やカスタマイズをサポートしている当サイトの「WordPress 3分間フッキング」シリーズへようこそ。今回は、ユーザーの回遊率を高めるための簡単かつ効果的なカスタマイズ、「個別記事の最後に前後記事リンクを表示する方法」をご紹介します。

WordPressのテーマによっては、デフォルトで前後記事へのリンクが表示されていないことがあります。このような場合でも、簡単なフックを使えばコードを数行書くだけで実装できるんです!

今回使うのは、WordPressの強力なフィルターフックの一つ、「the_content」です。これを使えば、投稿内容(コンテンツ)を表示する前に内容を加工することができます。それではさっそく始めましょう!

the_contentフィルターフックとは?

本題に入る前に、簡単に「the_content」フィルターフックについて説明しておきましょう。

WordPressでは、投稿内容を表示する際、内部的に「the_content()」という関数を使っています。この関数は実行される前に「the_content」というフィルターを通過します。つまり、このフィルターにフック(接続)することで、表示される前の投稿内容を自由に加工できるのです。

今回はこのフィルターフックを使って、すべての投稿の最後に「前の記事」と「次の記事」へのリンクを自動的に追加します。

前後記事リンクを実装するコード

それでは、具体的なコードを見ていきましょう。以下のコードをテーマの「functions.php」に追加するだけで、記事の最後に前後記事リンクが表示されるようになります。

WordPressの投稿記事の最後にリンクを追加

デザインを適用したい場合は、次のように書くことができます。」

WordPressの投稿記事の最後にリンクを追加

コードの詳細解説

このコードは大きく分けて二つの関数で構成されています:

1. wp3min_add_post_navigation関数

これは「the_content」フィルターフックに接続する主要な関数です。以下のステップで処理を行います:

  1. まず「is_single()」関数で個別投稿ページかどうかを確認します。また「get_post_type()」で投稿タイプが「post」(標準投稿)かどうかを確認します。
  2. 「get_previous_post()」と「get_next_post()」関数を使って前後の投稿を取得します。
  3. HTMLを構築して、前の記事と次の記事へのリンクを作成します。
  4. 作成したナビゲーションHTMLを元のコンテンツの末尾に追加します。

2. wp3min_add_navigation_styles関数

こちらはナビゲーションリンクのスタイルを設定するためのCSSを出力する関数です。「wp_head」アクションフックに接続して、ページヘッダー部分にCSSを挿入します。

このように複数のフックを組み合わせることで、より完成度の高い実装が可能になります。フィルターフックでコンテンツを加工し、アクションフックでスタイルを追加するのは、WordPressカスタマイズの定番テクニックです。

実装結果

このコードを実装すると、シンプルで見やすいナビゲーションが完成しました。これだけでサイト内の回遊率アップが期待できます!

カスタマイズポイント

このコードは基本実装ですが、様々な方向にカスタマイズできます。以下にいくつかのアイデアを紹介します:

カスタマイズ内容 変更方法
特定のカテゴリー内のみで前後記事を表示 get_previous_post()、get_next_post()の第3引数に’category’を指定
アイキャッチ画像を表示 get_the_post_thumbnail()関数を使用して各リンクにアイキャッチを追加
表示するテキストをカスタマイズ 「前の記事」「次の記事」の部分を任意のテキストに変更
特定の投稿タイプにも対応 条件分岐を修正し、任意の投稿タイプでも動作するよう拡張
デザインのカスタマイズ CSS部分を修正して、サイトデザインに合わせた見た目に調整

カテゴリー内のみの前後記事リンク

同じカテゴリー内での前後の記事だけを表示したい場合は、以下のように変更します:

アイキャッチ画像を表示

ナビゲーションにアイキャッチ画像を追加したい場合は、リンク生成部分を以下のように変更します:

アイキャッチ画像を追加する場合は、CSSも適宜調整して見た目を整えることをお忘れなく。レスポンシブデザインへの対応も考慮しましょう。

よくある質問(FAQ)

Q: この機能はテーマの「previous_post_link()」「next_post_link()」と何が違うのですか?

A: テーマ組み込みの関数は、テンプレートファイル(通常は single.php)に直接記述されているため、テーマによって表示位置や見た目が異なります。今回紹介したフックを使う方法では、テーマに依存せず常に記事コンテンツの末尾に表示できる点が大きな違いです。また、カスタマイズの自由度も高くなります。

Q: カスタム投稿タイプでも使用できますか?

A: はい、コード内の条件分岐を少し変更するだけで対応可能です。以下のように変更してください:

Q: ナビゲーションのデザインをもっとカスタマイズしたいのですが?

A: wp3min_add_navigation_styles 関数内のCSSを自由に変更できます。より高度なスタイリングを行いたい場合は、別途CSSファイルを作成して enqueue_style で読み込むのがベストプラクティスです。

Q: 前後の記事がない場合はどうなりますか?

A: コード内で !empty() チェックを行っているため、前後の記事がない場合は何も表示されません。必要に応じて「最初の記事です」「最新の記事です」などのメッセージを表示するようカスタマイズすることも可能です。

まとめ:簡単なフックで使いやすさ向上

今回は「the_content」フィルターフックを使って、記事の最後に前後記事へのリンクを追加する方法を紹介しました。

たった数十行のコードで、ユーザー体験を大幅に改善できるのがWordPressフックの魅力です。プラグインをインストールしなくても、必要な機能だけをスマートに実装できました。

フックを理解して使いこなすことで、WordPressサイトのカスタマイズの可能性は無限に広がります。次回のWordPress 3分間フッキングもお楽しみに!

私たちは埼玉県川越市を拠点に、WordPressサイトのカスタム開発や保守サポートを提供しています。WordPress関連のお困りごとがありましたら、お気軽にご相談ください。

もっとWordPressカスタマイズを学びたい方へ

この記事で紹介したような機能を自分のサイトに実装してみたいけれど、コードを書くのに不安がある方や、さらに高度なカスタマイズをご希望の方は、ぜひ私たちのサービスをご利用ください。

WordPressカスタマイズ・プラグイン開発を気軽にお問い合わせくださいね: https://edel-hearts.com/wordpress-customize-and-plugin-development/

技術的なアドバイスや定期的なコンサルティングをご希望の方は、WordPress顧問エンジニアサービスもご検討ください: https://edel-hearts.com/wordpress-technical-advisor/