get_page_of_comment() │ WP 2.7.0   Отримує сторінку пагінації коментарів у фронт-енді, на якій має відображатися зазначений коментар.
Функція використовується під час створення посилання на поточний коментар: get_comment_link()  , якщо в налаштуваннях обговорення стоїть налаштування “Розбивати коментарі верхнього рівня на сторінки по 10” (пагінація).
 Функція робить запит у БД, де рахує всі батьківські коментарі поточного посту і поділяє результат на кількість коментарів на сторінці. Так виходить сторінка пагінації. 
Якщо поточний коментар є дочірнім коментарем, то функцію буде викликати сама себе, доки не дійде до батьківського коментаря, потім буде здійснено операцію підрахунку номера сторінки.
  (дуже повільно)  | 50000 разів – 21.51 сек(повільно) 
Повертає int|null. Номер сторінки коментаря або null за помилки.
Використання get_page_of_comment( $comment_ID, $args )  $comment_ID(число) (обов’язковий)   ID комменатрію.  $args(масив)  Аргументи. За замовчуванням:
array(
	'type' => 'all',
	'page' => '',
	'per_page' => '',
	'max_depth' => ''
); За замовчуванням: array() 
Приклади  #1  Отримаємо номер сторінка пагінації коментаря echo get_page_of_comment(11175);
// Виведе: 5  #2  Отримаємо посилання на коментар За допомогою echo get_comment_link(11175);
echo get_comment_link(11175);
// виведе: http://example.com/hello-world/comment-page-5#comment-11175
// тут число 5 отримано за допомогою get_page_of_comment()  Додати свій приклад 
нотатки Global. wpdb. $wpdb  WordPress database abstraction object.  Код get_page_of_comment() get page of comment      WP 6.0.2  function get_page_of_comment( $comment_ID, $args = array() ) {
	Global $wpdb;
	$page = null;
	$comment = get_comment( $comment_ID );
	if ( ! $comment ) {
		return;
	}
	$defaults = array(
		'type' => 'all',
		'page' => '',
		'per_page' => '',
		'max_depth' => '',
	);
	$ args = wp_parse_args ($ args, $ defaults);
	$original_args = $args;
	// Order of precedence: 1. `$args['per_page']`, 2. 'comments_per_page' query_var, 3. 'comments_per_page' option.
	if ( get_option( 'page_comments' ) ) {
		if ( '' === $args['per_page'] ) {
			$args['per_page'] = get_query_var( 'comments_per_page' );
		}
		if ( '' === $args['per_page'] ) {
			$args['per_page'] = get_option( 'comments_per_page' );
		}
	}
	if ( empty( $args['per_page'] ) ) {
		$args['per_page'] = 0;
		$args['page'] = 0;
	}
	if ( $args['per_page'] < 1 ) {
		$page = 1;
	}
	if ( null === $page ) {
		if ( '' === $args['max_depth'] ) {
			if ( get_option( 'thread_comments' ) ) {
				$args['max_depth'] = get_option('thread_comments_depth');
			} else {
				$args['max_depth'] = -1;
			}
		}
		// Find this comment's top-level parent if threading is enabled.
		if ( $args['max_depth'] > 1 && 0 != $comment->comment_parent ) {
			return get_page_of_comment( $comment->comment_parent, $args );
		}
		$comment_args = array(
			'type' => $args['type'],
			'post_id' => $comment->comment_post_ID,
			'fields' => 'ids',
			'count' => true,
			'status' => 'approve',
			'parent' => 0,
			'date_query' => array(
				array(
					'column' => "$wpdb->comments.comment_date_gmt",
					'before' => $comment->comment_date_gmt,
				),
			),
		);
		if ( is_user_logged_in() ) {
			$comment_args['include_unapproved'] = array( get_current_user_id() );
		} else {
			$unapproved_email = wp_get_unapproved_comment_author_email();
			if ( $unapproved_email ) {
				$comment_args['include_unapproved'] = array( $unapproved_email );
			}
		}
		/**
		 * Filters arguments використовується для пошуку коментарів в get_page_of_comment().
		 *
		 * @ Since 5.5.0
		 *
		 * @see WP_Comment_Query::__construct()
		 *
		 * @param array $comment_args {
		 * Array of WP_Comment_Query arguments.
		 *
		 * @type string $type Ліміт paginated comments до цього matching a given type.
		 * Accepts 'comment', 'trackback', 'pingback', 'pings'
		 * (Trackbacks and pingbacks), або 'all'. Default 'all'.
		 * @type int $post_id ID of the post.
		 * @type string $fields Comment fields to return.
		 * @type bool $count Whether to return comment count (true) or array
		 * of comment objects (false).
		 * @type string $status Comment status.
		 * @type int $parent Parent ID повідомлень про відшкодування children of.
		 * @type array $date_query Введіть терміни, які clauses to limit comments by. See WP_Date_Query.
		 * @type array $include_unapproved Array of IDs або email address whose unapproved comments
		 * will be included in paginated comments.
		 * }
		 */
		$comment_args = apply_filters( 'get_page_of_comment_query_args', $comment_args );
		$comment_query = новий WP_Comment_Query();
		$older_comment_count = $comment_query->query( $comment_args );
		// No older comments? Then it's page #1.
		if ( 0 == $older_comment_count ) {
			$page = 1;
			// Divide comments Очевидно, що це одне з повідомлень за page to get this comment's page number.
		} else {
			$page = ceil(( $older_comment_count + 1 ) / $args['per_page'] );
		}
	}
	/**
	 * Filters calculated page on which a comment appears.
	 *
	 * @ Since 4.4.0
	 * @since 4.7.0 Introduced the `$comment_ID` parameter.
	 *
	 * @param int $page Comment page.
	 * @param array $args {
	 * Arguments used to calculate pagination. Ці включають arguments auto-detected by the function,
	 * based on query vars, system settings, etc. Для певних arguments passed to the function,
	 * see `$original_args`.
	 *
	 * @type string $type Type of comments to count.
	 * @type int $page Calculated current page.
	 * @type int $per_page Calculated number of comments per page.
	 * @type int $max_depth Maximum comment threading depth allowed.
	 * }
	 * @param array $original_args {
	 * Array of arguments passed to the function. Один або всі вони не можуть бути налаштовані.
	 *
	 * @type string $type Type of comments to count.
	 * @type int $page Current comment page.
	 * @type int $per_page Кількість коментарів на сторінці.
	 * @type int $max_depth Maximum comment threading depth allowed.
	 * }
	 * @param int $comment_ID ID of the comment.
	 */
	return apply_filters( 'get_page_of_comment', (int) $page, $args, $original_args, $comment_ID );
}