get_the_comments_pagination()WP 4.4.0

Gets the pagination links for comments: a list of links to the next and previous pages of comments for the post.

Will return nothing if the post does not have enough comments to split into pages.

This is a wrapper for the function paginate_comments_links(), which adds HTML markup to the pagination.

No Hooks.

Returns

String. HTML code of the links.

Usage

get_the_comments_pagination( $args );
$args(array)

Parameters that shape the output. Default parameters passed:

$defaults = [
	'screen_reader_text' => __( 'Comments navigation' ),
	'aria_label'         => __( 'Comments' ),       // WP 5.3
	'class'              => 'comments-pagination',  // WP 5.5

	// from the function paginate_comments_links():
	'base'    => add_query_arg( 'cpage', '%#%' ),
	'format'  => '',
	'total'   => $max_page,
	'current' => $page,
	'echo'    => true,
	'add_fragment' => '#comments'
];

Also, can accept all parameters that are passed to the function paginate_links()

Default: array()

Examples

0

#1 Comment pagination output (demo)

Let's say we're on a 'postname' page. Which has 30 comments and is set to divide comments by 10 per page. Then let's see what the function gets:

<?php echo get_the_comments_pagination(); ?>

Or you can use a wrapper function for quick display:

<?php the_comments_pagination(); ?>

You will get the following HTML code:

<nav class="navigation comments-pagination" role="navigation">
	<h2 class="screen-reader-text">Comment navigation</h2>
	<div class="nav-links">
		<a class="prev page-numbers" href="http://example.com/postname/comment-page-1/#comments">← Before</a>
		<a class="page-numbers" href="http://example.com/postname/comment-page-1/#comments">1</a>
		<span class="page-numbers current">2</span>
		<a class="page-numbers" href="http://example.com/postname/comment-page-3/#comments">3</a>
		<a class="next page-numbers" href="http://example.com/postname/comment-page-3/#comments">After →</a>
	</div>
</nav>

Notes

Changelog

Since 4.4.0 Introduced.
Since 5.3.0 Added the aria_label parameter.
Since 5.5.0 Added the class parameter.

get_the_comments_pagination() code WP 7.0

function get_the_comments_pagination( $args = array() ) {
	$navigation = '';

	// Make sure the nav element has an aria-label attribute: fallback to the screen reader text.
	if ( ! empty( $args['screen_reader_text'] ) && empty( $args['aria_label'] ) ) {
		$args['aria_label'] = $args['screen_reader_text'];
	}

	$args         = wp_parse_args(
		$args,
		array(
			'screen_reader_text' => __( 'Comments pagination' ),
			'aria_label'         => __( 'Comments pagination' ),
			'class'              => 'comments-pagination',
		)
	);
	$args['echo'] = false;

	// Make sure we get a string back. Plain is the next best thing.
	if ( isset( $args['type'] ) && 'array' === $args['type'] ) {
		$args['type'] = 'plain';
	}

	$links = paginate_comments_links( $args );

	if ( $links ) {
		$navigation = _navigation_markup( $links, $args['class'], $args['screen_reader_text'], $args['aria_label'] );
	}

	return $navigation;
}