paginate_comments_links

Выводит список ссылок на страницы комментариев (ссылки пагинации), текущего поста.

С версии 2.7. WordPress разработчиками был упрощен шаблон комментариев (файл comments.php), чтобы было проще создавать и редактировать отображение комментариев. Одним из таких улучшений стала возможность разделять комментарии на страницы и теперь посетителям не нужно подгружать сотни комментариев на одной странице, а можно сделать постраничную навигацию комментариев.

Включить разделение комментариев на несколько страниц (пагинацию комментариев) можно на странице админ-панели Настройки > Обсуждение.

После того, как разделение включено в системе, ссылки навигации по страницам комментариев можно вывести таким кодом:

<?php paginate_comments_links(); ?>


Неким аналогом такой пагинации являются функции next_comments_link() и previous_comments_link(), которые выводят ссылки на следующую и предыдущую страницу комментариев.

Почти такая же функция-аналог: get_the_comments_pagination()

Хуков нет.

Использование

<?php paginate_comments_links( $args ) ?>

Параметры по умолчанию

$args = array(
	'base'    => add_query_arg( 'cpage', '%#%' ),
	'format'  => null,
	'total'   => $max_page,
	'current' => $page,
	'echo'    => true,
	'add_fragment' => '#comments',
);

paginate_comments_links( $args );
$args(строка/массив)

Аргументы на основе которых будет получен результат.

Ядром paginate_comments_links() является функция paginate_links(), поэтому она может принимать все те же параметры.

По умолчанию: предустановки

Примеры

#1 Вывод постраничной навигации комментариев

Если в настройках установлено “разделять комментарии на страницы”, то в шаблоне используется такой код чтобы вывести навигацию:

<div class="navigation"><?php paginate_comments_links( $args ) ?></div>

В итоге мы получим подобный код:

paginate_comments_links('prev_text=back&next_text=forward')

Если в текстах ссылок нужно использовать специальные html символы (html сущности), то аргументы нужно передавать через массив:

paginate_comments_links( array('prev_text' => '«', 'next_text' => '»') )

Код из


wp-includes/link-template.php

WP 4.7.2

<?php
function paginate_comments_links( $args = array() ) {
	global $wp_rewrite;

	if ( ! is_singular() )
		return;

	$page = get_query_var('cpage');
	if ( !$page )
		$page = 1;
	$max_page = get_comment_pages_count();
	$defaults = array(
		'base' => add_query_arg( 'cpage', '%#%' ),
		'format' => '',
		'total' => $max_page,
		'current' => $page,
		'echo' => true,
		'add_fragment' => '#comments'
	);
	if ( $wp_rewrite->using_permalinks() )
		$defaults['base'] = user_trailingslashit(trailingslashit(get_permalink()) . $wp_rewrite->comments_pagination_base . '-%#%', 'commentpaged');

	$args = wp_parse_args( $args, $defaults );
	$page_links = paginate_links( $args );

	if ( $args['echo'] )
		echo $page_links;
	else
		return $page_links;
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *