paginate_comments_links()

関数の概要

paginate_comments_links() は、WordPressテーマ内でコメントのページナビゲーションリンクを表示するために使用される関数です。この関数は、複数ページに渡るコメントを表示する際に、各ページへのリンクを生成します。コメントが多い場合でも、ページナビゲーションリンクを使用することで、ユーザーが特定のコメントページに簡単にアクセスできるようになります。

パラメータの説明

paginate_comments_links( $args )

  • $args (array|string)(省略可能):コメントページナビゲーションリンクをカスタマイズするための引数の配列またはクエリ文字列。主な引数は以下の通りです:
  • prev_text (string):前のページへのリンクテキスト。デフォルトは '«'
  • next_text (string):次のページへのリンクテキスト。デフォルトは '»'
  • mid_size (int):現在のページ番号の前後に表示するページリンクの数。デフォルトは 2
  • end_size (int):最初と最後に表示するページリンクの数。デフォルトは 1
  • total (int):コメントページの総数。デフォルトは null(自動計算)。
  • current (int):現在のページ番号。デフォルトは null(自動取得)。
  • echo (bool):true ならページナビゲーションリンクを表示し、false ならリンクを返します。デフォルトは true です。
  • add_fragment (string):ページリンクに追加するURLフラグメント。デフォルトは空文字列です。

使用例

以下は、paginate_comments_links() 関数を使用してデフォルトのコメントページナビゲーションリンクを表示する基本的な例です:

<div class="comment-navigation">
    <?php paginate_comments_links(); ?>
</div>

カスタムテキストとページリンクの数を指定する例:

<div class="comment-navigation">
    <?php paginate_comments_links( array(
        'prev_text' => __('&laquo; Previous Comments'),
        'next_text' => __('More Comments &raquo;'),
        'mid_size'  => 2,
        'end_size'  => 1,
    ) ); ?>
</div>

ページナビゲーションリンクを変数に格納して後で使用する例:

<?php
$pagination_links = paginate_comments_links( array(
    'prev_text' => __('&laquo; Prev'),
    'next_text' => __('Next &raquo;'),
    'echo'      => false
) );
echo '<div class="comment-navigation">' . $pagination_links . '</div>';
?>

関連する関数

  • previous_comments_link(): 前のコメントページへのリンクを表示します。
  • next_comments_link(): 次のコメントページへのリンクを表示します。
  • paginate_links(): 投稿やページのページナビゲーションリンクを表示するために使用されます。

コメントページナビゲーションのカスタマイズ

コメントページナビゲーションのスタイルや構造をカスタマイズするために、CSSクラスやカスタムHTMLを追加することができます。以下は、CSSクラスを追加してコメントページナビゲーションをカスタマイズする例です:

<div class="custom-comment-navigation">
    <?php paginate_comments_links( array(
        'prev_text' => __('&laquo; Prev'),
        'next_text' => __('Next &raquo;'),
        'mid_size'  => 2,
        'end_size'  => 1,
    ) ); ?>
</div>

また、paginate_comments_links() 関数を使用する際に、独自のカスタムクエリを使用してコメントを表示することもできます。以下は、WP_Comment_Query を使用してカスタムコメントクエリを作成し、ページナビゲーションリンクを表示する例です:

<?php
$args = array(
    'status' => 'approve',
    'post_id' => get_the_ID(),
    'number' => 10, // 一ページに表示するコメント数
    'paged' => get_query_var('cpage') ? get_query_var('cpage') : 1,
);

$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );

if ( $comments ) {
    wp_list_comments( array( 'style' => 'ul' ), $comments );

    $total_comments = get_comments_number();
    $total_pages = ceil( $total_comments / $args['number'] );

    if ( $total_pages > 1 ) {
        paginate_comments_links( array(
            'total' => $total_pages,
            'current' => $args['paged'],
        ) );
    }
}
?>

paginate_comments_links() 関数を使用することで、テーマのテンプレートファイル内でコメントのページナビゲーションリンクを簡単に表示することができます。これにより、訪問者が特定のコメントページにアクセスしやすくなり、ユーザーエクスペリエンスが向上します。