Получение ссылки на предыдущие комментарии в WordPress

Получение ссылки на предыдущие комментарии в WordPress

Функция get_previous_comments_link() позволяет получить ссылку на предыдущую страницу комментариев. Эта функция полезна, когда у вас много комментариев, и вы хотите предоставить пользователям возможность легко переходить между страницами.

Как это работает

Использует

  • get_comments_pagenum_link()

Применяется в

  • previous_comments_link()
  • get_the_comments_navigation()

Производительность

  • 1 раз — 0.00019 сек (быстро)
  • 50000 раз — 2.7 сек (быстро)

Хуки функции

  • previous_comments_link_attributes

Возвращаемое значение

Строка или null. HTML-ссылка на предыдущую страницу комментариев.

Применение

get_previous_comments_link( $label, $page );

Параметры

  • $label (строка) — Текст ссылки. По умолчанию: ''
  • $page (целое число или null) — Номер страницы. По умолчанию: null

Примеры использования

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

Предположим, у поста 44 комментария, и мы находимся на второй странице комментариев. В этом случае можно использовать следующий код:

$prev_link = get_previous_comments_link();

/* $prev_link будет равен
← Предыдущие комментарии
*/

Добавьте свой собственный пример

Изменения

  • С версии 2.7.1 — Функция была добавлена.
  • С версии 6.7.0 — Добавлен параметр страницы.

Код функции

Функция get_previous_comments_link() располагается в файле wp-includes/link-template.php и выглядит следующим образом:


function get_previous_comments_link( $label = '', $page = null ) {
if ( ! is_singular() ) {
return;
}

if ( is_null( $page ) ) {
    $page = get_query_var( 'cpage' );
}

if ( (int) $page <= 1 ) {
    return;
}

$previous_page = (int) $page - 1;

if ( empty( $label ) ) {
    $label = __( '« Старые комментарии' );
}

/**
 * Фильтры для атрибутов тега ссылки на предыдущую страницу комментариев.
 *
 * @since 2.7.0
 *
 * @param string $attributes Атрибуты тега.
 */
$attr = apply_filters( 'previous_comments_link_attributes', '' );

return sprintf(
    '%3$s',
    esc_url( get_comments_pagenum_link( $previous_page ) ),
    $attr,
    preg_replace( '/&([^#])(?![a-z]{1,8};)/i', '&$1', $label )
);

}

Связанные функции

Пагинация комментариев

  • get_comment_pages_count()
  • get_comments_pagenum_link()
  • get_next_comments_link()
  • get_page_of_comment()
  • get_the_comments_navigation()
  • next_comments_link()
  • paginate_comments_links()
  • previous_comments_link()
  • the_comments_navigation()
  • the_comments_pagination()

Ссылки в HTML (тег )

  • edit_term_link()
  • get_next_posts_link()
  • get_previous_posts_link()
  • get_the_author_posts_link()
  • next_image_link()
  • previous_image_link()
  • the_attachment_link()
  • the_author_link()
  • the_author_posts_link()
  • the_shortlink()
  • wp_register()

Комментарии

  • cancel_comment_reply_link()
  • comment_author_email_link()
  • comment_form()
  • comment_form_title()
  • comment_id_fields()
  • comment_text()
  • comment_type()
  • comments_link()
  • comments_popup_link()
  • get_avatar()
  • get_avatar_data()
  • get_avatar_url()
  • get_cancel_comment_reply_link()
  • get_comment()
  • get_comment_author_email()
  • get_comment_reply_link()
  • get_comment_text()
  • get_comment_type()
  • get_comments()
  • get_comments_link()
  • get_comments_number()
  • get_edit_comment_link()
  • get_the_comments_pagination()
  • is_comment_feed()
  • is_trackback()
  • sanitize_comment_cookies()
  • wp_allow_comment()
  • wp_count_comments()
  • wp_delete_comment()
  • wp_get_current_commenter()
  • wp_handle_comment_submission()
  • wp_insert_comment()
  • wp_list_comments()
  • wp_new_comment()
  • wp_notify_moderator()
  • wp_notify_postauthor()
  • wp_set_comment_cookies()
  • wp_set_comment_status()
  • wp_spam_comment()
  • wp_transition_comment_status()
  • wp_update_comment()
  • wp_update_comment_count()

Теперь вы знаете, как использовать функцию get_previous_comments_link() для работы с комментариями в WordPress!

Leave a Reply

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