Получение и вывод Комментариев с пагинацией
Код ниже показывает, как в WordPress вывести комментарии пользователя со ссылками пагинации. Для этого нужно использовать класс WP_Comment_Query.
Допустим мы выводим комментарии на странице /user-comments
и номер страницы пагинации мы ходим добавлять через GET параметр ?pagenum=10
. Выводить будем по 50 комментариев на странице. Для создания HTML кода ссылок пагинации будем использовать функцию paginate_links().
$per_page = 50; $pagenum = $_GET['pagenum'] ?? 1; $offset = ($pagenum - 1) * $per_page; $paged_url_patt = home_url( preg_replace( '/[?&].*/', '', $_SERVER['REQUEST_URI'] ) ) .'?pagenum=%#%'; $query = new WP_Comment_Query; $comments = $query->query( [ 'order' => 'DESC', 'user_id' => $user_id, 'offset' => $offset, 'number' => $per_page, 'no_found_rows' => false, ] ); //$total_comments = (int) $query->found_comments; $max_pages = (int) $query->max_num_pages; $paginate_links = paginate_links( [ 'base' => $paged_url_patt, 'current' => $pagenum, 'total' => $max_pages ] ); echo $paginate_links;
В результате получим следующий код пагинации:
<a class="prev page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=2">← Ранее</a> <a class="page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=1">1</a> <a class="page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=2">2</a> <span aria-current="page" class="page-numbers current">3</span> <a class="page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=4">4</a> <a class="page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=5">5</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=75">75</a> <a class="next page-numbers" href="https://wp-kama.dev/profile/comments?pagenum=4">Далее →</a>
—
Эта заметка встроена в: get_comments()