MENU

paginate_comments_links()

paginate_comments_links() は、WordPressで コメントページのリンク一覧 を生成するテンプレートタグです。複数ページに分割されたコメントに対して、 ページ番号をナビゲーションとして表示 する際に使用されます。

目次

機能の説明

  • paginate_comments_links() は、現在の投稿・固定ページにおける コメントページのナビゲーションリンク一覧 を表示します。
  • ページ番号や「次へ」「前へ」といったリンクを提供できるため、 多くのコメントを扱うページで便利 です。
  • HTMLのカスタマイズ が可能なため、スタイリングやアクセシビリティ対応にも役立ちます。

シンプルなコード例

<?php 
paginate_comments_links(); 
?>
  • 基本的に paginate_comments_links() はオプション無しでも動作しますが、 カスタマイズ可能な引数 を使うことで、より柔軟な表示ができます。
  • 引数で指定できるものには、 前後のリンクテキスト、現在のページのクラス名、総ページ数 などがあります。

使用例

<?php 
paginate_comments_links(array(
    'prev_text' => '« 前へ',
    'next_text' => '次へ »',
    'type'      => 'list',
    'mid_size'  => 2,
    'end_size'  => 1
)); 
?>
  • prev_textnext_text でそれぞれのリンクテキストを指定しています。
  • type'list' にすることで、リンクを <ul><li> で構成されたリスト形式で出力します。
  • mid_size現在のページの前後に表示するページリンクの数 を指定し、end_size先頭と末尾に表示するリンクの数 を設定します。

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

previous_comments_link()

previous_comments_link() は、 前のコメントページへのリンク を生成します。paginate_comments_links() では詳細なページ番号リンクを扱うのに対し、シンプルな「前のページへ」のリンクとして利用されます。

<?php 
previous_comments_link('前のページへ'); 
paginate_comments_links();
?>
  • この組み合わせでは、 「前のページへ」 のリンクとページ番号ナビゲーションを併用しています。
  • ユーザビリティ向上のため、 ページ番号リンクの前後にシンプルな前後リンクを付け足す 使い方です。

next_comments_link()

next_comments_link() は、 次のコメントページへのリンク を生成します。previous_comments_link() と対になる形で、 コメントの次ページを案内するリンク として使われます。

<?php 
paginate_comments_links(); 
next_comments_link('次のページへ'); 
?>

ページ番号ナビゲーションと「次のページへ」リンクを組み合わせた例 です。ページ番号リンクだけではなく、 前後リンクがあることでユーザーにとって使いやすいナビゲーション になります。

追加情報を取得したい場合

現在のコメントページ情報の取得

コメントの 現在のページ番号や総ページ数 を取得し、ナビゲーションの表示を制御できます。

<?php 
$current_page = get_query_var('cpage') ? get_query_var('cpage') : 1;
$total_pages = get_comment_pages_count();

echo '現在のページ: ' . $current_page . ' / ' . $total_pages;
paginate_comments_links();
?>
  • get_query_var('cpage')現在のコメントページ番号 を取得しています。
  • get_comment_pages_count() を使って 総ページ数 も表示し、ユーザーに現在のページ状況を知らせることができます。

get_comment_pages_count() で取得できる情報

  • total_pages:コメントの総ページ数
  • current_page:現在のコメントページ番号

想定されるトラブル

コメントがページ分割されない

WordPressの コメントページ分割オプション が無効になっている。

解決方法

  1. 管理画面の 「設定」→「ディスカッション」 に移動します。
  2. 「〇件ごとにコメントをページ分割する」にチェックを入れ、適切な分割数を設定してください。

ナビゲーションが正しく表示されない

現在のページが 最初または最後 のページであり、リンクが非表示になっている可能性があります。

解決方法

get_query_var()get_comment_pages_count() を使ってページ番号を取得し、条件分岐でリンクの表示を制御します。

<?php 
if (get_query_var('cpage') < get_comment_pages_count()) {
    paginate_comments_links();
}
?>

Q&A

paginate_comments_links() でカスタムCSSを使いたい場合は?

type パラメータを 'list' にすることで、<ul><li> のリスト形式で出力されます。これにより、CSSでスタイリングがしやすくなります。

<ul class="custom-pagination">
    <?php paginate_comments_links(array('type' => 'list')); ?>
</ul>
<style>
.custom-pagination li {
    display: inline-block;
    margin-right: 10px;
}
</style>

ページ番号を強調表示することはできますか?

current クラスにCSSを適用することで、 現在のページ番号 を強調できます。

<style>
.current {
    font-weight: bold;
    color: red;
}
</style>

前後のリンクにアイコンを追加できますか?

可能です。prev_textnext_text にHTMLタグを指定することで、アイコンを追加できます。

<?php 
paginate_comments_links(array(
    'prev_text' => '<span class="icon">←</span> 前へ',
    'next_text' => '次へ <span class="icon">→</span>',
));
?>

まとめ

paginate_comments_links() は、 複数ページに分割されたコメントのナビゲーションリンク を生成するためのテンプレートタグです。

previous_comments_link()next_comments_link() などのタグと組み合わせることで、 ユーザーがコメントページ間を簡単に移動 できるようにします。また、get_query_var()get_comment_pages_count() を使えば、 より柔軟なナビゲーション制御 が可能になります。

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

コメント

コメントする

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

目次