ВЫЗОВ И ОТОБРАЖЕНИЕ КОММЕНТАРИЕВ С ПАГИНАЦИЕЙ
В этой статье мы разберём, как отображать комментарии пользователей в 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; // Расчет смещения для текущей страницы
// Шаблон для формирования URL с пагинацией
$paged_url_patt = home_url( preg_replace( '/[?&].*/', '', $_SERVER['REQUEST_URI'] ) ) .'?pagenum=%#%';
// Создание нового объекта WP_Comment_Query
$query = new WP_Comment_Query;
$comments = $query->query([
'order' => 'DESC', // Порядок сортировки комментариев
'user_id' => $user_id, // ID пользователя
'offset' => $offset, // Смещение для текущей страницы
'number' => $per_page, // Количество комментариев на странице
'no_found_rows' => false, // Не исключать количество строк
]);
// Получаем общее количество страниц
$max_pages = (int) $query->max_num_pages;
// Генерация HTML-кода пагинации
$paginate_links = paginate_links([
'base' => $paged_url_patt,
'current' => $pagenum,
'total' => $max_pages
]);
echo $paginate_links; // Выводим HTML-код пагинации
Результат
В результате выполнения кода вы получите следующий HTML-код для пагинации:
← Prev
1
2
3
4
5
…
75
Next →
Заключение
Теперь вы знаете, как выводить комментарии пользователей с пагинацией в WordPress. Этот подход поможет вам организовать удобное отображение большого количества комментариев, что улучшит взаимодействие пользователей с вашим сайтом. Подобная структура позволяет легко просматривать комментарии на разных страницах, что удобно как для пользователей, так и для администраторов сайта.