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

## Функция paginate_comments_links()

### Описание

Функция paginate_comments_links() отображает или возвращает ссылки для страниц комментариев текущей записи.

### Используется в

Эта функция используется в get_the_comments_pagination().

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

Функция может вернуть:

- null, если аргумент echo установлен в true и type не является массивом, или если запрос не относится к существующей записи.
- Строку или массив с разметкой для ссылок на страницы комментариев, в зависимости от аргумента type.

### Использование функции

Чтобы использовать функцию, вы можете написать так:

```php
paginate_comments_links( $args );

Аргументы

  • $args (строка|массив): Опциональные параметры. По умолчанию — пустой массив. Более подробно о возможных параметрах можно посмотреть в документации функции paginate_links().

Примеры

Пример 1: Навигация по страницам комментариев

Если в настройках WordPress установлено "разделить комментарии на страницы", вы мо��ете использовать следующий код, чтобы отобразить навигацию:

В итоге вы получите код, который может выглядеть так:

Пример 2: Изменение текста ссылок "Следующая/Предыдущая страница"

Чтобы изменить текст ссылок "следующая" и "предыдущая", вы можете передать аргументы prev_text и next_text:

paginate_comments_links( 'prev_text=Назад&next_text=Вперед' );

Если вы хотите использовать специальные HTML-символы в текстах ссылок, передайте аргументы как массив:

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

Примечания

  • Обратите внимание на функцию paginate_links(), подробнее о ней можно узнать в соответствующей документации.
  • Глобальная переменная: $wp_rewrite. Это компонент переписывания в WordPress.

Изменения

Функция была введена в версии WordPress 2.7.0.

Код функции

В WordPress, функция paginate_comments_links находится в файле wp-includes/link-template.php:

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;
    }
}

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

  • get_comment_pages_count()
  • get_comments_pagenum_link()
  • get_next_comments_link()
  • get_page_of_comment()
  • get_previous_comments_link()
  • Другие функции, связанные с комментариями и их навигацией.

Leave a Reply

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