Функция GET_NEXT_COMMENTS_LINK() в WordPress: использование и примеры

Функция 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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *