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_text
とnext_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の コメントページ分割オプション が無効になっている。
解決方法
- 管理画面の 「設定」→「ディスカッション」 に移動します。
- 「〇件ごとにコメントをページ分割する」にチェックを入れ、適切な分割数を設定してください。
ナビゲーションが正しく表示されない
現在のページが 最初または最後 のページであり、リンクが非表示になっている可能性があります。
解決方法
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()
は、 複数ページに分割されたコメントのナビゲーションリンク を生成するためのテンプレートタグです。
previous_comments_link()
や next_comments_link()
などのタグと組み合わせることで、 ユーザーがコメントページ間を簡単に移動 できるようにします。また、get_query_var()
や get_comment_pages_count()
を使えば、 より柔軟なナビゲーション制御 が可能になります。
コメント