こんにちは、Ryohei(@ityryohei)です!

本記事では、WordPressの投稿ページ(single.php)で同じタクソノミー・ターム内の前へ・次へのリンクを表示する方法をご紹介しています。

投稿ページで同じタクソノミー・ターム内の前後の投稿リンクを表示したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

投稿ページで前へ・次へのリンクを表示する

WordPressの関数には、投稿ページで現在表示されている投稿に隣接する前へ・次へのリンクを取得することができる下記の関数が用意されています。

  • 前の投稿リンク:previous_post_link()
  • 次の投稿リンク:next_post_link()

使い方は下記の通りです。

next_post_link($format, $link, $in_same_term, $excluded_term, $taxonomy);

引数には下記の値を指定することができます。

引数説明
$format[ 文字列 ]リンク文字列のフォーマットを指定します。リンクの前後に任意の文字列を追加することができます。HTMLタグも指定可能です。%linkが投稿のaタグを表します。
aタグをdivで囲む例: '<div>%link</div>'
$link[ 文字列 ]表示するリンクのテキストを指定します。投稿のタイトルを表示する場合は%titleを指定します。
$in_same_term[ 真偽値 ]現在表示されている投稿と同じタクソノミー・ターム内の投稿のみを表示するかを真偽値で指定します。trueを指定すると、同じタクソノミー・ターム内の投稿のみが表示されます。
$excluded_term[ 文字列/配列 ]特定のタームを除外したい場合にタームIDを指定します。複数指定する場合は配列にカンマ区切りでタームIDを指定します。
$taxonomy[ 文字列 ]タクソノミーを指定します。$in_same_termがtrueの場合に有効なオプションです。

ループ内でのみ使用できる関数ですが、上記の関数を使用することで同じタクソノミー・ターム内の前へ・次への投稿リンクを表示することができます。

同じタクソノミー・ターム内の前へ・次へのリンクを表示する

同じタクソノミー・ターム内の前へ・次へのリンクを表示します。リンクテキストには投稿タイトルを表示し、タクソノミーはnews_categoryの場合を例にサンプルをご紹介します。各関数のドキュメントのリンクも記載しておりますので、詳しく知りたい方はリンク先をご参照いただければと思います。

前の投稿リンク

previous_post_link('%link', '%title', true, '', 'news_category');

参考:https://developer.wordpress.org/reference/functions/previous_post_link/

次の投稿リンク

next_post_link('%link', '%title', true, '', 'news_category');

参考:https://developer.wordpress.org/reference/functions/next_post_link/

以上で現在表示されている投稿に隣接する同じタクソノミー・ターム内の前へ・次へのリンクを表示することができます。

最後に

投稿ページで現在の投稿に隣接する前へ・次への投稿を表示する場合は本記事でご紹介した内容が有効です。もしリンクを表示ではなく取得したい場合は下記の関数をご検討ください。

以上、WordPressで同じタクソノミー・ターム内の前へ・次へのリンクを表示する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。