前後の記事へのページネーションを実装・カスタマイズする方法【WordPress】

最終更新日:

公開日:2025-02-06

ページ内に広告が含まれています。
前後の記事へのページネーションを実装・カスタマイズする方法【WordPress】

WordPressでは、ブログやお知らせなどの記事の下によくある「前の記事へ」「次の記事へ」のページネーションを出力できるテンプレートタグprevious_post_link()next_post_link()が用意されています。
今回はこのテンプレートタグを使って前後の記事へのページネーションを出力する方法と、カスタマイズする方法を解説していきます。

previous_post_link()next_post_link()にクラスを付ける方法は、「前の記事へ」「次の記事へ」のリンクにclassを付ける方法【WordPress】で解説していますのでご覧ください。

テンプレートタグ「previous_post_link()」と「next_post_link()」

WordPressで用意された専用の関数であるテンプレートタグの中に、前の記事へのリンクを出力するprevious_post_link()と次の記事へのリンクを出力するnext_post_link()があります。
それぞれ、WordPressのテンプレートファイルの中に記述する事でページネーションを表示できます。

<?php previous_post_link(); ?>
<?php next_post_link(); ?>

以下が出力されるコードです。

« <a href="前の記事のリンク" rel="prev">前の記事タイトル</a>
<a href="次の記事のリンク" rel="next">次の記事タイトル</a> »

上記のように、そのままの状態だと矢印(«»)とリンクになった記事のタイトルが表示されます。
previous_post_link()next_post_link()にはそれぞれ引数を指定する事が出来、ある程度カスタマイズして表示が可能です。

表示されている矢印を消す

デフォルトの状態だと矢印と記事タイトルが表示されますが、矢印を消したい場合は以下のように記述します。

<?php previous_post_link('%link'); ?>
<?php next_post_link('%link'); ?>

以下が出力されるコードです。

<a href="前の記事のリンク" rel="prev">前の記事タイトル</a>
<a href="次の記事のリンク" rel="next">次の記事タイトル</a>

%link」はURLを含めたリンクタグ(aタグ)を出力するパラメーターになります。
デフォルトでは、「« %link」となっているため、上記のように記述すると矢印を消す事ができます。

表示されるテキストを変更する

デフォルトの状態では第2引数に「%title」が指定されていて記事のタイトルが表示されますが、表示されるテキストを変更する場合は第2引数に任意のテキストを記述します。

<?php previous_post_link('%link', '前の記事へ'); ?>
<?php next_post_link('%link', '次の記事へ'); ?>

以下が出力されるコードです。

<a href="前の記事のリンク" rel="prev">前の記事へ</a>
<a href="次の記事のリンク" rel="next">次の記事へ</a>

同じカテゴリーの前後の記事を表示する

表示されている記事と同じカテゴリー(ターム)の前後の記事を表示したい場合は、第3引数に「true」と記述します。

<?php previous_post_link('%link', '前の記事へ', true); ?>
<?php next_post_link('%link', '次の記事へ', true); ?>

カスタム投稿タイプの記事の場合

カスタム投稿タイプの記事の場合、特定のカスタムタクソノミーで現在のタームの前後の記事を出力するには第5引数にカスタムタクソノミーのスラッグを指定する必要があります。

<?php previous_post_link('%link', '前の記事へ', true, '', 'news_category'); ?>
<?php next_post_link('%link', '次の記事へ', true, '', 'news_category'); ?>

特定のカテゴリー(ターム)を除外する

特定のカテゴリー(ターム)を除外したい場合は、第4引数にカテゴリーID(タームID)を指定します。

<?php previous_post_link('%link', '前の記事へ', true, '5'); ?>
<?php next_post_link('%link', '次の記事へ', true, '5'); ?>

第3引数は場合によって「true」と「false」を変更してください。
また、除外したいカテゴリー(ターム)が複数ある場合はカンマ区切りか配列で記述します。

<?php
    // カンマ区切り
    previous_post_link('%link', '前の記事へ', true, '5,10');

    // 配列
    previous_post_link('%link', '前の記事へ', true, array(5,10));
?>

前後の記事が無い場合は非表示にする

ページネーションを表示する際に、他のHTMLタグなどと合わせて表示するかと思います。
前後の記事が無い場合などに不要なタグやページネーションを出力しなくするにはif文を使います。

<?php if (get_previous_post()): ?>
    <p><?php previous_post_link('%link', '前の記事へ'); ?></p>
<?php endif; ?>

<?php if (get_next_post()): ?>
    <p><?php next_post_link('%link', '次の記事へ'); ?></p>
<?php endif; ?>

get_previous_post()」や「get_next_post()」は前後の記事の情報を取得できます。その情報がある場合のみ他のHTMLタグを含めたページネーションを表示する事が出来ます。

さいごに

いかがでしたでしょうか。
今回は、前後の記事へのページネーションを実装・カスタマイズする方法を解説しました。
今回解説した2つのテンプレートタグはWordpressのブログやお知らせなどの記事の表示でよく使用しますので、表示方法を含めカスタマイズ方法も知っておくと便利です。

previous_post_link()next_post_link()にクラスを付ける方法は、「前の記事へ」「次の記事へ」のリンクにclassを付ける方法【WordPress】で解説していますのでご覧ください。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

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

各SNSのフォローはこちらから

PAGE TOP