wp_link_pages()
は、WordPress投稿や固定ページが複数ページに分割されている場合、各ページへのナビゲーションリンクを表示するテンプレートタグです。
機能の説明
wp_link_pages()
は、1つの投稿を<!--nextpage-->
タグで分割したとき、各ページに移動するためのリンクを自動的に生成します。読者が簡単にページ間を移動できるナビゲーションを提供するのが目的です。
シンプルなコード例
<?php wp_link_pages(); ?>
デフォルトのリンク形式で、現在の投稿が複数ページに分割されている場合にリンクを表示します。
使い方の解説
wp_link_pages()
は、投稿が<!--nextpage-->
タグで区切られているときにリンクを表示するために使用します。例えば、長い記事を複数のページに分けたい場合に便利です。このタグはsingle.php
やpage.php
内に配置します。
基本的な使用例
<?php wp_link_pages(array(
'before' => '<div class="page-links">ページ: ',
'after' => '</div>',
)); ?>
この例では、リンクを<div>
タグで囲んで「ページ: 」という文字列を前に追加しています。
ページ番号をカスタマイズする
<?php wp_link_pages(array(
'before' => '<nav class="pagination">ページ: ',
'after' => '</nav>',
'link_before' => '<span>',
'link_after' => '</span>',
'next_or_number' => 'number',
)); ?>
この例では、<span>
タグでページリンクを囲み、ナビゲーション部分をカスタマイズしています。また、next_or_number
をnumber
に設定して、数字のリンクのみ表示します。
一緒に使うことが多い関連タグ
the_content()
the_content()
は、投稿や固定ページの本文を表示するテンプレートタグです。wp_link_pages()
は通常the_content()
とセットで使用されます。
<?php the_content(); ?>
<?php wp_link_pages(); ?>
the_content()
の後にwp_link_pages()
を配置することで、分割されたページへのリンクを本文の下に表示します。
paginate_links()
paginate_links()
は、カスタムクエリのページネーションを行うテンプレートタグです。wp_link_pages()
が1つの投稿内のページリンクを表示するのに対し、paginate_links()
はアーカイブページや検索結果ページなどで使用されます。
<?php echo paginate_links(array(
'total' => 5,
'current' => 1,
)); ?>
このコードは、5ページのページネーションリンクを表示します。wp_link_pages()
とは異なり、投稿単位ではなくクエリ全体に対するリンクです。
追加情報を取得したい場合
投稿が複数ページに分割されているか確認する
wp_link_pages()
を使用する前に、投稿が複数ページに分割されているかを確認することができます。
<?php if (strpos($post->post_content, '<!--nextpage-->') !== false): ?>
<p>この投稿は複数ページに分かれています。</p>
<?php endif; ?>
<!--nextpage-->
タグが含まれているかどうかを確認し、含まれている場合にメッセージを表示します。
get_the_content()
で取得できる本文情報
<?php $content = get_the_content(); ?>
<p><?php echo wp_trim_words($content, 40, '...'); ?></p>
出力できる情報
- 全文: 投稿や固定ページの全文を取得
- 短縮版:
wp_trim_words()
で特定の単語数に制限
想定されるトラブル
分割ページのリンクが表示されない
投稿内に<!--nextpage-->
が含まれていない、もしくはwp_link_pages()
が正しい位置に配置されていないことが原因です。
解決策
- 投稿内に
<!--nextpage-->
を挿入する。 wp_link_pages()
がthe_content()
の後に配置されているか確認する。
リンクのデザインが崩れる
CSSが適用されていないため、デザインが崩れることがあります。
解決策
以下のようにCSSを追加して見栄えを整えます。
.page-links span {
margin: 0 5px;
padding: 5px 10px;
background-color: #f0f0f0;
border-radius: 5px;
}
Q&A
まとめ
wp_link_pages()
は、1つの投稿を複数ページに分割する際に、各ページへのナビゲーションリンクを提供する便利なテンプレートタグです。the_content()
とセットで使うことが多く、<!--nextpage-->
を挿入することで簡単に利用できます。ページネーションを使った快適なユーザー体験を提供するために、CSSでのカスタマイズも重要です。
コメント