Пагинация для комментариев с другой страницы

217
05 августа 2021, 00:10

использую этот код

    <?php
    // Получаем комментарии нескольких постов с ID XXX из базы данных 
    $comments = get_comments(array(
        'post_in' => XXX, // массив id постов
        'hierarchical' => false, // отключаем дочерние комментарии
        'status' => 'approve' // комментарии прошедшие модерацию
    ));
    // Формируем вывод списка полученных комментариев
    wp_list_comments(array(
        'per_page' => 8, // Пагинация комментариев - по 4 на страницу
        'reverse_top_level' => false // Показываем последние комментарии в начале
    ), $comments);
    the_comments_pagination();
?>

для вывода комментариев с определенных страниц. Комментарии выводятся, НО ...

  1. Выводятся комментарии всех уровней, как выводить только родительские?
  2. Ни как не хочет выводится пагинация, т.е. сами комментарии разбиваются, а пагинация не выводится, в чем может быть проблема?

P.S. Разбивка комментариев на страницы админке включена, правда там другая цифра

Answer 1
  1. get_comments( ['parent' => 0] );
  2. Попробуй указать параметры:
the_comments_pagination(
    'total'   => $max_page, 
    'current' => $page,
)

https://wp-kama.ru/function/the_comments_pagination

Answer 2

В итоге благодаря Мах, он дал верное направление. Сделал такой код, все работает.

        <?php
    // Получаем комментарии нескольких постов с ID XXX из базы данных 
    $comments = get_comments(array(
        'post_in' => XXX, // массив id постов
        'parent' => 0, // отключаем дочерние комментарии
        'status' => 'approve' // комментарии прошедшие модерацию
    ));
    // Формируем вывод списка полученных комментариев
    wp_list_comments(array(
        'per_page' => 8, // Пагинация комментариев - по 8 на страницу
        'reverse_top_level' => false // Показываем последние комментарии в начале
    ), $comments);
    if ( get_comment_pages_count($comments) > 1 ) :
        $max_page = get_comment_pages_count($comments, 8, true); //значение должно совпадать с per_page в wp_list_comments (можно ввести переменную, если нужно часто менять)
        $paged = (get_query_var('cpage')) ? get_query_var('cpage') : 1; 
        paginate_comments_links (array(
            'base'    => add_query_arg( 'cpage', '%#%' ),
            'total'   => $max_page, 
            'current' => $paged,
        ));
    endif;
?>
READ ALSO
E2e тестирование api

E2e тестирование api

Как проверить api через phpunit У меня есть api http://test/testApi/apiScanTest Она должна принимать данные

200
Как правильно спроектировать роли в базе данных?

Как правильно спроектировать роли в базе данных?

Хочу создать бд, где имеется пользователь User и его роли, у каждого пользователя, в зависимости от роли — свой личный кабинетКак правильно...

218
Что именно имеется ввиду под &ldquo;WARNING: An illegal reflective access operation has occurred&rdquo;

Что именно имеется ввиду под “WARNING: An illegal reflective access operation has occurred”

Решил практиковаться по рефлексии, получил вот такой вот странный результатречь о всех красных строк в консоли

297
Как изменить порт для процесса?

Как изменить порт для процесса?

ОС - федора 29Установил сервер wildfly при запуске приложения () в ИДЕ падает такая ошибка - 'JBoss 17

257