paginate_comments_links() WP 2.7.0

Виводить список посилань на сторінки коментарів (посилання пагінації), поточного посту.

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

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

Після того, як поділ увімкнено в системі, посилання навігації по сторінках коментарів можна вивести таким кодом:

<?php paginate_comments_links(); ?>

Аналогом такої пагінації є функції previous_comments_link() , які виводять посилання на наступну та попередню сторінку коментарів.

Майже така сама функція-аналог: the_comments_pagination()

Працює на основі:
paginate_links()
Основа для:
get_the_comments_pagination()

Хуків немає.

Повертає

null|Строку|Массив.

  • Нічого – якщо параметр echo = trueі typeне array. Або коли функція викликана не на сторінці посту (тобто коментів у сторінки не може бути).
  • HTML посилань пагінації при echo = false.
  • Масив посилань пагінації при type = array|plain|list.

Шаблон використання

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

Використання

<?php paginate_comments_links( $args ) ?>
$args
(рядок/масив)

Аргументи на основі яких буде отримано результат.

Опис параметрів дивіться у функції paginate_links() , вона є ядром цієї функції.

За замовчуванням: попереднє встановлення

Приклади

0

#1 Висновок посторінкової навігації коментарів

Якщо в налаштуваннях встановлено “розділяти коментарі на сторінки”, то в шаблоні використовується такий код, щоб вивести навігацію:

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

У результаті ми отримаємо такий код:

<div class="navigation">
	<a class="prev page-numbers" href="/id_140/comment-page-3#comments">«««</a>
	<a class='page-numbers' href='/id_140/comment-page-1#comments'>1</a>
	<a class='page-numbers' href='/id_140/comment-page-2#comments'>2</a>
	<a class='page-numbers' href='/id_140/comment-page-3#comments'>3</a>
	<span class='page-numbers current'>4</span>
</div>
0

#2 Зміна текстів посилань “наступна/попередня сторінка”

Щоб змінити тексти посилань наступна/попередня сторінка, функції потрібно передати аргументи prev_textтаnext_text

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

Якщо тексти посилань потрібно використовувати спеціальні html символи (html сутності), то аргументи потрібно передавати через масив:

paginate_comments_links([
	'prev_text' => '«',
	'next_text' => '»'
]);

нотатки

  • Дивіться: paginate_links()
  • Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.

список змін

З версії 2.7.0Введено.

Код paginate_comments_links() WP 6.0.2

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,
		'type' => 'plain',
		'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'] && 'array' !== $args['type'] ) {
		echo $page_links;
	} else {
		return $page_links;
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *