get_comments_pagenum_link()WP 2.7.0

Получает ссылку на указанную страницу пагинации комментариев записи.

Функция предназначена для использования только на отдельных страницах типа is_singular().

Функция добавляет страницу комментария к текущему УРЛ записи, с учетом установленных настроек ЧПУ и установок в $wp_rewrite которые относятся к страницам комментариев например параметр $wp_rewrite->comments_pagination_base, в котором обычно хранится строка comment-page.

Работает на основе: get_permalink(), user_trailingslashit()
1 раз — 0.00016 сек (быстро) | 50000 раз — 5.76 сек (быстро)
Хуки из функции

Возвращает

Строку. УРЛ на страницу пагинации комментариев записи.

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

get_comments_pagenum_link( $pagenum, $max_page );
$pagenum(число)
Номер страницы пагинации, ссылку на которую нужно получить.
По умолчанию: 1
$max_page(число)
Номер последней страницы пагинации комментариев, чтобы на этой странице к УРЛ не дописывалась дополнительная часть /comment-page-5.
По умолчанию: 0 (без ограничений)

Примеры

0

#1 Получим ссылку на страницу пагинации комментариев текущей страницы

Предположим мы находимся на странице http://example.com/page. Тогда вот так будет работать функция, при разных параметрах

echo get_comments_pagenum_link( 5 );
// получим: http://example.com/page/comment-page-5#comments

echo get_comments_pagenum_link( 5, 6 );
// получим: http://example.com/page/comment-page-5#comments

echo get_comments_pagenum_link( 5, 4 );
// получим: http://example.com/page/comment-page-5#comments

echo get_comments_pagenum_link( 5, 5 );
// получим: http://example.com/page#comments

Заметки

  • Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.

Список изменений

С версии 2.7.0 Введена.

Код get_comments_pagenum_link() WP 6.6.2

function get_comments_pagenum_link( $pagenum = 1, $max_page = 0 ) {
	global $wp_rewrite;

	$pagenum  = (int) $pagenum;
	$max_page = (int) $max_page;

	$result = get_permalink();

	if ( 'newest' === get_option( 'default_comments_page' ) ) {
		if ( $pagenum !== $max_page ) {
			if ( $wp_rewrite->using_permalinks() ) {
				$result = user_trailingslashit( trailingslashit( $result ) . $wp_rewrite->comments_pagination_base . '-' . $pagenum, 'commentpaged' );
			} else {
				$result = add_query_arg( 'cpage', $pagenum, $result );
			}
		}
	} elseif ( $pagenum > 1 ) {
		if ( $wp_rewrite->using_permalinks() ) {
			$result = user_trailingslashit( trailingslashit( $result ) . $wp_rewrite->comments_pagination_base . '-' . $pagenum, 'commentpaged' );
		} else {
			$result = add_query_arg( 'cpage', $pagenum, $result );
		}
	}

	$result .= '#comments';

	/**
	 * Filters the comments page number link for the current request.
	 *
	 * @since 2.7.0
	 *
	 * @param string $result The comments page number link.
	 */
	return apply_filters( 'get_comments_pagenum_link', $result );
}