Как создать пагинацию для комментариев по странично ?

Мне необходимо что б на странице кастомного типа записи выводилась кастомная форма отображения списка комментариев с пагинацией.
На других типах записи используеться пагинация других видов, для страниц, поэтому пишем в отдельном шаблоне миную comments.php

Благодаря вот этой статье get_query_var() Был написан вот такой код с параметрами cpage

custom-comments-template.php

<?php if (post_password_required()) {
	return;
}
$per_page = 4;

$page = get_query_var('cpage') ?: 1;

?>
<div id="comments" class="company-rewiew-list">
	<h1>Per page = <?php echo $per_page?></h1>
	<h2>Page - <?php echo $page?></h2>
	<?php

	wp_list_comments(array(
		'type' => 'comment',
		'reverse_top_level' => false, // Отключите сортировку родительских комментариев от старых к новым
		'reverse_children' => false, // Включите сортировку ответов на родительские комментарии от новых к старым
		'callback' => 'reviews_theme_comment',
		'per_page' => $per_page,
		'cpage' => $page,
	)); ?>
</div>

<?php

/// Pagination
if ($per_page > 1){
	$custom_pagination_template = locate_template('template-parts/custom-comments-pagination.php');
	if ($custom_pagination_template) {
		include $custom_pagination_template;
	}
}

?>

Сам же фаил пагинации custom-comments-pagination.php выглядит так

<div class="company-rewiew-pagination">
	<?php

	$args = array(
		'post_id' => get_the_ID(), // Идентификатор текущего поста
		'parent' => 0, // Только родительские комментарии
		'count' => true, // Запрос для получения количества комментариев
	);
	$top_level_comments_count = get_comments($args);
	$max_pages = ceil($top_level_comments_count / $per_page);

	$args = array(
		'screen_reader_text' => __('Comments navigation'),
		'aria_label' => __('Comments'),
		'class' => 'comments-pagination',
		'base' => add_query_arg('cpage', '%#%'),
		'format' => '',
		'total' => $max_pages,
		'current' => $page,
		'add_fragment' => '',
		'prev_text' => '❮',
		'next_text' => '❯',
		'type' => 'list',
	);
	echo get_the_comments_pagination($args);
	?>
</div>

<p>Page value <?php echo $page; ?></p>
<p>Max Pages  <?php echo $max_pages; ?></p>
<p>$top_level_comments_count  <?php echo $top_level_comments_count; ?></p>
Комментарии с пагинацией

Проблема в том, что я не понимаю, почему изначально меня брасает на "5" страницу (хотя если у меня 9 комментариев на странице 1го уровня а я задаю $per_page = 4; то должно быть максимум 3 и начинать должно с 1 страницы...), откуда это ? Как правильно задавать значение переменной $page = get_query_var('cpage') ?: 1; ?

Пробовал и так задавать $page = max(1, get_query_var('cpage')); не помогло.

Заметки к вопросу:
BlackStar год назад

Вот нашел ответ на свой вопрос. Что б сделать пагинацию для комментариеы. Может кому понадобится

<?php if (post_password_required()) {
	return;
}
$post_id = get_the_ID();
$per_page = 4;
$comments_count = get_comments_number($post_id);

if (isset($_GET['cpage']) && is_numeric($_GET['cpage'])) {
	$page = (int)$_GET['cpage'];
}
$page = max(1, $page);

?>
<div id="comments" class="company-rewiew-list">
	<?php
	wp_list_comments(array(
		'type' => 'comment',
		'reverse_top_level' => false, // Отключите сортировку родительских комментариев от старых к новым
		'reverse_children' => false, // Включите сортировку ответов на родительские комментарии от новых к старым
		'callback' => 'reviews_theme_comment',
		'per_page' => $per_page,
		'cpage' => $page,
	)); ?>
</div>

<?php

/// Pagination
if (($per_page > 1) && ($comments_count > $per_page)) {
	include locate_template('template-parts/custom-comments-pagination.php');
}
?>

а пагинация выглядит так

<?php

$args = array(
	'post_id' => get_the_ID(), // Идентификатор текущего поста
	'parent' => 0, // Только родительские комментарии
	'count' => true, // Запрос для получения количества комментариев
);
$top_level_comments_count = get_comments($args);
$max_pages = ceil($top_level_comments_count / $per_page);

$args = array(
	'screen_reader_text' => __('Comments navigation'),
	'aria_label' => __('Comments'),
	'class' => 'comments-pagination',
	'format' => '',
	'total' => $max_pages,
	'current' => $page,
	'prev_text' => '❮',
	'next_text' => '❯',
	'type' => 'list',
	'echo' => false, // Установите это значение в false
);

$pagination = get_the_comments_pagination($args);
$pagination = str_replace('#comments', '', $pagination);
?>
<div class="company-rewiew-pagination">
	<?php echo $pagination; ?>
</div>