Пагинация для таблиц в WordPress: практическое руководство с примерами плагинов и кода

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

Зачем нужна пагинация для таблиц в WordPress

Таблицы с большим количеством строк тяжело воспринимать, они замедляют загрузку страницы и ухудшают UX. Пагинация позволяет разбить длинный список на страницы, ускоряя загрузку и упрощая навигацию. Особенно это важно для таблиц с данными, которые регулярно обновляются или формируются динамически.

Кроме того, пагинация помогает оптимизировать использование ресурсов сервера и облегчает SEO-индексацию за счет уменьшения количества контента на одной странице.

Популярные плагины для пагинации таблиц в WordPress

Существует несколько плагинов, которые позволяют быстро добавить пагинацию к таблицам в WordPress. Вот самые востребованные:

  • TablePress — один из самых популярных плагинов для создания и управления таблицами. В нем встроена функция пагинации и сортировки.
  • WP DataTables — мощный плагин для работы с большими таблицами, поддерживает пагинацию, фильтрацию и AJAX-загрузку.
  • Data Tables Generator by Supsystic — плагин с удобным интерфейсом и возможностью включения пагинации и поиска.

Рассмотрим на примере TablePress, как включить пагинацию:

1. Установите и активируйте плагин TablePress.
2. Создайте таблицу или импортируйте существующую.
3. В настройках таблицы включите "Pagination" (Пагинация) и установите количество строк на странице.
4. Вставьте шорткод таблицы в нужное место на сайте.

TablePress поддерживает кастомизацию стилей и функций пагинации через JavaScript и CSS, что дает гибкие возможности для дизайна.

Создание кастомной пагинации для таблиц через код в WordPress

Если вы хотите реализовать пагинацию без плагинов или для специфичных таблиц (например, с данными из базы), можно написать собственный код. Рассмотрим базовый пример пагинации для таблицы, выводимой через WP_Query.

Шаг 1: Запрос данных и разбиение на страницы

Для начала определим, сколько записей выводить на одной странице, и получим номер текущей страницы из параметров URL.

function wppagenavi_get_current_page() {
    return max( 1, get_query_var('paged') ?: 1 );
}

$posts_per_page = 10; // Количество строк в таблице на страницу
$current_page = wppagenavi_get_current_page();

$args = [
    'post_type' => 'your_post_type',
    'posts_per_page' => $posts_per_page,
    'paged' => $current_page
];
$query = new WP_Query($args);

Шаг 2: Вывод таблицы с постами

Далее формируем HTML таблицу из полученных постов.

if ( $query->have_posts() ) {
    echo '<table class="wppagenavi-table">';
    echo '<thead><tr><th>Заголовок</th><th>Дата</th></tr></thead>';
    echo '<tbody>';
    while ( $query->have_posts() ) {
        $query->the_post();
        echo '<tr>';
        echo '<td>' . get_the_title() . '</td>';
        echo '<td>' . get_the_date() . '</td>';
        echo '</tr>';
    }
    echo '</tbody>';
    echo '</table>';
}
wp_reset_postdata();

Шаг 3: Вывод навигации пагинации

Для навигации используем функцию paginate_links с параметрами, учитывающими текущую страницу и общее число страниц.

$total_pages = $query->max_num_pages;

if ($total_pages > 1) {
    $pagination = paginate_links([
        'base' => get_pagenum_link(1) . '%_%',
        'format' => 'page/%#%/',
        'current' => $current_page,
        'total' => $total_pages,
        'prev_text' => '< Назад',
        'next_text' => 'Вперед >'
    ]);
    echo '<nav class="wppagenavi-pagination">' . $pagination . '</nav>';
}

Добавление AJAX пагинации для таблиц

Для улучшения UX можно сделать пагинацию динамической без перезагрузки страницы. Пример AJAX пагинации для таблицы:

JavaScript: обработка кликов на пагинацию

jQuery(document).ready(function($) {
    $('.wppagenavi-pagination a').on('click', function(e) {
        e.preventDefault();
        var page = $(this).attr('href').match(/page/(\d+)/)[1];

        $.ajax({
            url: wppagenavi_ajax_obj.ajax_url,
            type: 'POST',
            data: {
                action: 'wppagenavi_load_table_page',
                page: page
            },
            success: function(response) {
                $('.wppagenavi-table-container').html(response);
            }
        });
    });
});

PHP: обработчик AJAX запроса

add_action('wp_ajax_wppagenavi_load_table_page', 'wppagenavi_load_table_page_callback');
add_action('wp_ajax_nopriv_wppagenavi_load_table_page', 'wppagenavi_load_table_page_callback');

function wppagenavi_load_table_page_callback() {
    $page = intval($_POST['page']);
    $posts_per_page = 10;

    $args = [
        'post_type' => 'your_post_type',
        'posts_per_page' => $posts_per_page,
        'paged' => $page
    ];
    $query = new WP_Query($args);

    if ($query->have_posts()) {
        echo '<table class="wppagenavi-table">';
        echo '<thead><tr><th>Заголовок</th><th>Дата</th></tr></thead>';
        echo '<tbody>';
        while ($query->have_posts()) {
            $query->the_post();
            echo '<tr>';
            echo '<td>' . get_the_title() . '</td>';
            echo '<td>' . get_the_date() . '</td>';
            echo '</tr>';
        }
        echo '</tbody>';
        echo '</table>';
    }
    wp_die();
}

Советы по оптимизации и кастомизации пагинации таблиц

Для улучшения производительности и удобства внедрите следующие рекомендации:

  • Используйте кэширование запросов и результатов для уменьшения нагрузки на базу.
  • Настраивайте стили пагинации под дизайн сайта с помощью CSS.
  • Добавьте сортировку и фильтрацию в таблицы для более гибкой навигации.
  • Если используете плагин TablePress, можно расширить функционал с помощью расширений и API плагина.
  • Для большого объема данных лучше использовать серверную пагинацию, чтобы не загружать все записи сразу.

Для примера готового решения с расширенными возможностями рекомендую обратить внимание на плагин WP DataTables от WPSHOP, который поддерживает мощную пагинацию, фильтрацию и интеграцию с любыми видами данных.

Итог

Пагинация таблиц в WordPress — важный инструмент для удобства пользователей и оптимизации сайта. Вы можете использовать готовые плагины, такие как TablePress, или написать собственное решение с помощью WP_Query и функций пагинации WordPress. Для улучшения UX рекомендуем добавить AJAX пагинацию. Следуя описанным подходам, вы сможете гибко и эффективно реализовать пагинацию для любых таблиц на вашем сайте.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отладить проблемы пагинации в WordPress: практические методы и примеры
15.03.2026
Как использовать пагинацию для отображения большого количества комментариев в WordPress
09.05.2026
Как исправить неработающую пагинацию при пользовательских запросах WP_Query в WordPress
28.04.2026
Как удалить пагинацию в WordPress без плагинов: практическое руководство
21.11.2025
Как правильно настроить пагинацию для SEO в WordPress: лучшие практики и примеры
25.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее