Функция GET_NEXT_COMMENTS_LINK() в WordPress
Функция get_next_comments_link() позволяет получить ссылку на следующую страницу комментариев к записи. В этой статье мы рассмотрим, как она работает и как ее использовать.
Как работает функция
Эта функция работает с другими функциями WordPress, такими как get_comment_pages_count() и get_comments_pagenum_link(). Она используется в других функциях, например, next_comments_link() и get_the_comments_navigation().
Производительность
- При одном вызове функция выполняется примерно за 0.00019 секунды.
- Если вызвать её 50,000 раз, время выполнения составит примерно 2.7 секунды.
Хуки функции
Функция использует хук next_comments_link_attributes, который позволяет изменять атрибуты ссылки на следующую страницу комментариев.
Возвращаемое значение
Функция возвращает строку (или null), представляющую HTML-код ссылки на следующую страницу комментариев.
Использование функции
Для использования функции get_next_comments_link() нужно передать ей несколько параметров:
$link = get_next_comments_link( $label, $max_page, $page );
- $label (string) — текст ссылки. По умолчанию пустой.
- $max_page (int) — максимальное количество страниц.
- $page (int|null) — номер текущей страницы. По умолчанию устанавливается в
null.
Пример
Допустим, у вас есть запись с 44 комментариями, и вы находитесь на второй странице комментариев. Вот как можно получить ссылку на следующую страницу:
$link = get_next_comments_link();
/* $link будет равен
Следующие комментарии →
*/
Примечания
- Используется глобальный объект
WP_Query, который хранит информацию о текущем запросе в WordPress.
Изменения в функции
- С версии 2.7.1 функция была добавлена в WordPress.
- В версии 6.7.0 был добавлен параметр страницы.
Код функции
Вот как выглядит код функции get_next_comments_link() в файле wp-includes/link-template.php:
function get_next_comments_link( $label = '', $max_page = 0, $page = null ) {
global $wp_query;
if ( ! is_singular() ) {
return;
}
if ( is_null( $page ) ) {
$page = get_query_var( 'cpage' );
}
if ( ! $page ) {
$page = 1;
}
$next_page = (int) $page + 1;
if ( empty( $max_page ) ) {
$max_page = $wp_query->max_num_comment_pages;
}
if ( empty( $max_page ) ) {
$max_page = get_comment_pages_count();
}
if ( $next_page > $max_page ) {
return;
}
if ( empty( $label ) ) {
$label = __( 'Новые комментарии »' );
}
$attr = apply_filters( 'next_comments_link_attributes', '' );
return sprintf(
'%3$s',
esc_url( get_comments_pagenum_link( $next_page, $max_page ) ),
$attr,
preg_replace( '/&([^#])(?![a-z]{1,8};)/i', '&$1', $label )
);
}
Связанные функции
get_comment_pages_count()— получает общее количество страниц комментариев.get_comments_pagenum_link()— получает ссылку на страницу комментариев по номеру страницы.get_previous_comments_link()— получает ссылку на предыдущую страницу комментариев.paginate_comments_links()— отображает ссылки для навигации по страницам комментариев.
Эта функция и связанные с ней инструменты помогут вам удобно управлять комментариями на вашем сайте на WordPress!