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