Как создать динамические таблицы в WordPress с помощью шорткода

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

Зачем нужны динамические таблицы в WordPress

Таблицы на сайте часто используются для различных целей: отображение прайс-листов, расписаний, сравнений продуктов или статистики. Статические таблицы требуют ручного обновления в редакторе, что неудобно и увеличивает риск ошибок.

Динамические таблицы автоматически подтягивают данные из базы данных, файлов или внешних источников и обновляются при изменении данных. Это делает их удобными для сайтов, где информация часто меняется.

Кроме того, динамические таблицы можно программно фильтровать, сортировать и форматировать, что повышает удобство пользователей и улучшает UX.

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

1. Регистрация шорткода в functions.php

Для начала создадим функцию, которая будет формировать HTML таблицы на основе данных. Затем зарегистрируем шорткод, чтобы использовать её в любом месте сайта.

function wpcourse_dynamic_table_shortcode($atts) {
    $atts = shortcode_atts(array(
        'type' => 'default', // тип таблицы для разных данных
    ), $atts, 'wpcourse_table');

    // Получаем данные в зависимости от типа
    $data = wpcourse_get_table_data($atts['type']);

    if (empty($data)) {
        return '<p>Данные для таблицы не найдены.</p>';
    }

    $output = '<table class="wpcourse-dynamic-table"><thead><tr>';
    // Выводим заголовки
    foreach ($data[0] as $key => $value) {
        $output .= '<th>' . esc_html($key) . '</th>';
    }
    $output .= '</tr></thead><tbody>';

    // Выводим строки
    foreach ($data as $row) {
        $output .= '<tr>';
        foreach ($row as $cell) {
            $output .= '<td>' . esc_html($cell) . '</td>';
        }
        $output .= '</tr>';
    }

    $output .= '</tbody></table>';
    return $output;
}
add_shortcode('wpcourse_table', 'wpcourse_dynamic_table_shortcode');

2. Функция получения данных для таблицы

В этом примере данные берутся из статического массива, но вы можете адаптировать функцию для получения информации из базы данных, CSV-файлов или API.

function wpcourse_get_table_data($type) {
    switch ($type) {
        case 'prices':
            return array(
                array('Товар' => 'Хостинг', 'Цена' => '500 руб/мес', 'Описание' => 'Надёжный хостинг для сайтов'),
                array('Товар' => 'Шаблон', 'Цена' => '1500 руб', 'Описание' => 'Адаптивный дизайн'),
                array('Товар' => 'Плагин', 'Цена' => 'Бесплатно', 'Описание' => 'Расширение функционала'),
            );
        case 'team':
            return array(
                array('Имя' => 'Иван', 'Должность' => 'Разработчик', 'Опыт' => '5 лет'),
                array('Имя' => 'Ольга', 'Должность' => 'Дизайнер', 'Опыт' => '3 года'),
            );
        default:
            return array();
    }
}

Использование шорткода на странице

Теперь вы можете вставить таблицу в любой пост или страницу с помощью шорткода. Например, для вывода прайс-листа используйте:

[wpcourse_table type="prices"]

Для вывода списка команды:

[wpcourse_table type="team"]

Такой подход позволяет централизованно управлять данными и не править каждую таблицу вручную.

Расширение функционала: сортировка и фильтрация

Для улучшения восприятия данных добавим возможность сортировать таблицу по столбцам с помощью JavaScript. Один из популярных вариантов — подключить библиотеку DataTables.

Для подключения DataTables добавьте в functions.php следующий код:

function wpcourse_enqueue_scripts() {
    wp_enqueue_style('datatables-css', 'https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css');
    wp_enqueue_script('jquery');
    wp_enqueue_script('datatables-js', 'https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js', array('jquery'), null, true);
    wp_add_inline_script('datatables-js', 'jQuery(document).ready(function($) {$(".wpcourse-dynamic-table").DataTable();});');
}
add_action('wp_enqueue_scripts', 'wpcourse_enqueue_scripts');

Этот код подключит необходимые стили и скрипты, а также инициализирует DataTables для таблиц с классом wpcourse-dynamic-table. После этого ваша таблица станет интерактивной: с сортировкой, поиском и пагинацией.

Плагины для создания динамических таблиц в WordPress

Если не хочется писать код, можно использовать готовые решения. Вот несколько проверенных плагинов:

  • TablePress — один из самых популярных плагинов для создания и управления таблицами. Поддерживает импорт/экспорт, сортировку, пагинацию.
  • WP Table Builder — визуальный конструктор таблиц с перетаскиванием элементов, удобен для сложных макетов.
  • Data Tables Generator by Supsystic — плагин с расширенными функциями сортировки, фильтрации, поиском и поддержкой больших таблиц.

Все эти плагины можно скачать с официального репозитория WordPress или с wpshop.ru.

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

При работе с таблицами важно учитывать производительность и удобство пользователей:

  • Используйте пагинацию и ленивую загрузку для больших таблиц, чтобы не замедлять загрузку страниц.
  • Минимизируйте количество данных, показываемых одновременно, используя фильтры и категории.
  • Оптимизируйте стили таблиц для мобильных устройств, чтобы таблицы оставались читаемыми.
  • Кэшируйте результаты, если данные берутся из сложных запросов или внешних API.

Выводы и практические рекомендации

Создание динамических таблиц через шорткоды в WordPress — мощный инструмент для вывода актуальной информации с минимальными усилиями. Используйте кастомные функции для гибкого контроля над данными и подключайте популярные JS-библиотеки для улучшения UX.

Если вы предпочитаете готовые решения — выбирайте плагин с учётом требований и особенностей вашего сайта. Для интеграции с другими инструментами из экосистемы WPShop обратите внимание на их каталог по ссылке выше.

Такой подход позволит создавать удобные и красивые таблицы, которые легко поддерживать и масштабировать в будущем.

Как отключить возможность изменения адреса доставки в WooCommerce после оформления заказа
01.05.2026
Как отключить сравнение товаров в WooCommerce без плагинов
24.04.2026
Как создать автоматический редирект в WordPress без плагинов
09.03.2026
Как удалить версии постов в WordPress для оптимизации базы данных
25.03.2026
Как удалить генератор верстки WordPress без потери функциональности
29.12.2025

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас