wp_link_pages()

wp_link_pages()
目次

wp_link_pages()とは?

wp_link_pages()の概要

wp_link_pages() は、WordPress で 1つの投稿や固定ページを複数のページに分割表示する場合に使用するテンプレートタグです。この関数を使うと、ページ分割された各部分へのリンク(「1 2 3 次へ」など)を自動生成・出力してくれます。

これは、以下のように <!--nextpage--> タグを投稿本文中に挿入することで機能します。

wp_link_pages()の基本的な使い方

<?php wp_link_pages(); ?>

このコードをテーマの single.phppage.php テンプレートなど、the_content() の直後に入れると、ページ分割されている場合にページナビゲーションが表示されます。

<?php
the_content();
wp_link_pages();
?>

投稿を分割する方法:<!--nextpage-->

WordPress では投稿や固定ページの本文中に次のように記述することで、手動でページ分割ができます:

ここが1ページ目の内容。

<!--nextpage-->

ここが2ページ目の内容。

<!--nextpage-->

ここが3ページ目の内容。

この状態で wp_link_pages() を使うと、現在のページが強調表示されるページナビゲーションが自動で表示されます。

wp_link_pages()のオプション付きの使用例

wp_link_pages() は、配列形式で細かい出力設定が可能です。代表的な使い方は以下のとおりです:

<?php
wp_link_pages(array(
    'before'           => '<nav class="page-links">ページ:',
    'after'            => '</nav>',
    'link_before'      => '<span>',
    'link_after'       => '</span>',
    'next_or_number'   => 'number',
    'separator'        => ' ',
    'pagelink'         => '%',
    'echo'             => 1
));
?>

wp_link_pages()のパラメータの意味

パラメータ名説明
beforeナビゲーションリンクの前に表示するHTML
afterナビゲーションリンクの後に表示するHTML
link_before各ページ番号リンクの前に追加するHTML
link_after各ページ番号リンクの後に追加するHTML
next_or_number"number"(ページ番号)または "next"(前へ・次へリンク)
separator各リンクの区切り文字
pagelink各ページリンクのラベル。デフォルトでは % がページ番号に置き換わる
echo出力(1)するか、返り値(0)として取得するか

wp_link_pages()の出力例(<!--nextpage--> 使用時)

本文:

本文パート1

<!--nextpage-->

本文パート2

<!--nextpage-->

本文パート3

テンプレート:

the_content();
wp_link_pages(array(
    'before' => '<div class="pagination">ページ:',
    'after'  => '</div>',
));

出力されるHTML(例):

<div class="pagination">ページ:
<a href=".../post-name/">1</a>
<a href=".../post-name/2/">2</a>
<a href=".../post-name/3/">3</a>
</div>

next_or_number の違い

'next_or_number' => 'next'

とした場合、「前へ」「次へ」のリンクに変わります。

wp_link_pages(array(
    'next_or_number' => 'next',
    'nextpagelink'   => '次へ',
    'previouspagelink' => '前へ'
));

これにより、次のようなナビゲーションが表示されます:

<div class="pagination">
<a href=".../post-name/2/">次へ</a>
</div>

wp_link_pages()の注意点

  1. <!--nextpage--> がないと何も表示されない
    この関数は、投稿が複数ページに分割されていないときは何も出力しません。
  2. ページ分割はSEOへの影響あり
    Googleは分割されたページを個別にクロールするため、過剰なページ分割は推奨されません。ユーザー体験を意識して使用すべきです。
  3. テーマによっては未対応の場合も
    wp_link_pages()the_content() の後に設置されていないテーマでは、分割してもナビゲーションが表示されないことがあります。

wp_link_pages()のカスタマイズ例:現在のページを強調表示

CSS で現在のページ番号を目立たせることもできます。

wp_link_pages(array(
    'before'      => '<div class="page-links">ページ:',
    'after'       => '</div>',
    'link_before' => '<span>',
    'link_after'  => '</span>',
));

そしてCSSでスタイルを指定:

.page-links span.current {
    font-weight: bold;
    color: red;
}

wp_link_pages() と併用される関数

  • the_content()
    → 本文を表示。<!--nextpage--> を挿入すると分割される。
  • get_the_content()
    the_content() の返り値バージョン。出力せず取得できる。
  • paginate_links()
    → 複数の投稿のページネーション用(wp_link_pages() は1つの投稿のページ分割用)。

wp_link_pages()のまとめ

特徴内容
主な用途投稿・固定ページの中でページ分割された部分のナビゲーション表示
設定方法投稿本文に <!--nextpage--> を挿入
出力場所the_content() の直後が一般的
カスタマイズ性高い。before / after / pagelink などで自由に変更可能
出力形式ページ番号/「前へ・次へ」の切替が可能
SEO面使いすぎると評価が分散するリスクがあるため注意

wp_link_pages() は一見地味ですが、長文を複数ページに分割して読みやすくしたいときに非常に便利な関数です。特に物語・解説記事・マニュアルなど、長くなる投稿を整理したいときに重宝します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次