
wp_link_pages()とは?
wp_link_pages()の概要
wp_link_pages() は、WordPress で 1つの投稿や固定ページを複数のページに分割表示する場合に使用するテンプレートタグです。この関数を使うと、ページ分割された各部分へのリンク(「1 2 3 次へ」など)を自動生成・出力してくれます。
これは、以下のように <!--nextpage--> タグを投稿本文中に挿入することで機能します。
wp_link_pages()の基本的な使い方
<?php wp_link_pages(); ?>このコードをテーマの single.php や page.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()の注意点
<!--nextpage-->がないと何も表示されない
この関数は、投稿が複数ページに分割されていないときは何も出力しません。- ページ分割はSEOへの影響あり
Googleは分割されたページを個別にクロールするため、過剰なページ分割は推奨されません。ユーザー体験を意識して使用すべきです。 - テーマによっては未対応の場合も
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() は一見地味ですが、長文を複数ページに分割して読みやすくしたいときに非常に便利な関数です。特に物語・解説記事・マニュアルなど、長くなる投稿を整理したいときに重宝します。