get_comment_pages_count( array $comments = null, int $per_page = null, bool $threaded = null )

Calculate the total number of comment pages.


Description Description


Parameters Parameters

$comments

(array) (Optional) array of WP_Comment objects. Defaults to $wp_query->comments

Default value: null

$per_page

(int) (Optional) comments per page.

Default value: null

$threaded

(bool) (Optional) control over flat or threaded comments.

Default value: null


Top ↑

Return Return

(int) Number of comment pages.


Top ↑

Source Source

File: wp-includes/comment.php

function get_comment_pages_count( $comments = null, $per_page = null, $threaded = null ) {
	global $wp_query;

	if ( null === $comments && null === $per_page && null === $threaded && !empty($wp_query->max_num_comment_pages) )
		return $wp_query->max_num_comment_pages;

	if ( ( ! $comments || ! is_array( $comments ) ) && ! empty( $wp_query->comments )  )
		$comments = $wp_query->comments;

	if ( empty($comments) )
		return 0;

	if ( ! get_option( 'page_comments' ) ) {
		return 1;
	}

	if ( !isset($per_page) )
		$per_page = (int) get_query_var('comments_per_page');
	if ( 0 === $per_page )
		$per_page = (int) get_option('comments_per_page');
	if ( 0 === $per_page )
		return 1;

	if ( !isset($threaded) )
		$threaded = get_option('thread_comments');

	if ( $threaded ) {
		$walker = new Walker_Comment;
		$count = ceil( $walker->get_number_of_root_elements( $comments ) / $per_page );
	} else {
		$count = ceil( count( $comments ) / $per_page );
	}

	return $count;
}

Top ↑

Changelog Changelog

Changelog
Version Description
2.7.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    Number of comments per page

    This will use the defaults for the number of comments per page and threading. You can use custom values like this:

    // Show 25 comments per page.
    $pages = get_comment_pages_count( null, 25 );
    
    // Don't thread comments.
    $pages = get_comment_pages_count( null, null, false ); 
    
    // Show 10 comments per page, use threading.
    $pages = get_comment_pages_count( null, 10, true ); 
    
  2. Skip to note content
    Contributed by Codex

    Outside the loop

    When inside the loop, you can just pass null as the value for the $comment parameter, as shown above. You can also use the function outside the loop, but you need to pass in the array of comments. For example, you may perform a custom comment query using WP_Comment_Query:

    $args = array(
       // query args here
    );
    
    $comments_query = new WP_Comment_Query;
    $comments = $comments_query->query( $args );
    
    $pages = get_comment_pages_count( $comments );
    

You must log in before being able to contribute a note or feedback.