MENU

wp_link_pages()

wp_link_pages() は、WordPress投稿や固定ページが複数ページに分割されている場合、各ページへのナビゲーションリンクを表示するテンプレートタグです。

目次

機能の説明

wp_link_pages() は、1つの投稿を<!--nextpage-->タグで分割したとき、各ページに移動するためのリンクを自動的に生成します。読者が簡単にページ間を移動できるナビゲーションを提供するのが目的です。

シンプルなコード例

<?php wp_link_pages(); ?>

デフォルトのリンク形式で、現在の投稿が複数ページに分割されている場合にリンクを表示します。

使い方の解説

wp_link_pages() は、投稿が<!--nextpage-->タグで区切られているときにリンクを表示するために使用します。例えば、長い記事を複数のページに分けたい場合に便利です。このタグはsingle.phppage.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_numbernumberに設定して、数字のリンクのみ表示します。

一緒に使うことが多い関連タグ

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()が正しい位置に配置されていないことが原因です。

解決策

  1. 投稿内に<!--nextpage-->を挿入する。
  2. wp_link_pages()the_content()の後に配置されているか確認する。

リンクのデザインが崩れる

CSSが適用されていないため、デザインが崩れることがあります。

解決策

以下のようにCSSを追加して見栄えを整えます。

.page-links span {
    margin: 0 5px;
    padding: 5px 10px;
    background-color: #f0f0f0;
    border-radius: 5px;
}

Q&A

<!--nextpage-->を使わずに分割リンクを表示できますか?

いいえ、wp_link_pages()<!--nextpage-->が挿入されていないと動作しません。

wp_link_pages()で「次へ」「前へ」リンクを表示するには?

next_or_numberオプションをnextに設定することで、「次へ」「前へ」のリンクを表示できます。

<?php wp_link_pages(array('next_or_number' => 'next')); ?>

ページリンクに現在のページ番号を強調するには?

currentクラスをCSSでスタイリングすることで可能です。

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

まとめ

wp_link_pages() は、1つの投稿を複数ページに分割する際に、各ページへのナビゲーションリンクを提供する便利なテンプレートタグです。the_content()とセットで使うことが多く、<!--nextpage-->を挿入することで簡単に利用できます。ページネーションを使った快適なユーザー体験を提供するために、CSSでのカスタマイズも重要です。

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

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次