wpnotes.ru wordpress WP Notes

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

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

Почему адаптивность таблиц важна для WordPress сайтов

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

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

Использование плагинов для адаптивных таблиц в WordPress

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

1. TablePress с расширением Responsive Tables

TablePress — один из самых популярных плагинов для создания таблиц в WordPress. По умолчанию он не адаптивен, но с помощью расширения Responsive Tables можно добавить адаптивность.

  • Установка TablePress и активируйте плагин.
  • Скачайте и активируйте расширение Responsive Tables.
  • В настройках таблицы включите опцию адаптивности.

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

2. WP Table Builder

WP Table Builder — конструктор таблиц с поддержкой адаптивности из коробки. Позволяет создавать таблицы с помощью drag-and-drop, удобно для новичков.

  • Поддержка различных типов контента в ячейках (текст, изображения, кнопки).
  • Автоматическое сжатие таблиц под мобильные экраны.
  • Возможность экспорта/импорта таблиц.

Плагин отлично подходит, если нужно быстро создать красивые и адаптивные таблицы с минимальными усилиями.

Кастомные решения: адаптивные таблицы с помощью CSS и JavaScript

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

Метод 1: Горизонтальная прокрутка

Самый простой способ — обернуть таблицу в контейнер с прокруткой:

<div class="wpnotes-responsive-table">
  <table>
    ...
  </table>
</div>

И добавить CSS:

.wpnotes-responsive-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

Это позволит показывать всю таблицу с возможностью прокрутки по горизонтали, не ломая верстку.

Метод 2: Таблицы в стиле карточек с помощью CSS

Более сложный, но удобный способ — менять таблицы на набор карточек на мобильных устройствах. Пример CSS:

@media (max-width: 768px) {
  table.wpnotes-table,
  thead,
  tbody,
  th,
  td,
  tr {
    display: block;
  }

  thead tr {
    position: absolute;
    top: -9999px;
    left: -9999px;
  }

  tr {
    border: 1px solid #ccc;
    margin-bottom: 10px;
  }

  td {
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    padding-left: 50%;
  }

  td:before {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 45%;
    padding-right: 10px;
    white-space: nowrap;
    content: attr(data-label);
    font-weight: bold;
  }
}

Тогда в HTML для каждой ячейки добавляем атрибут data-label с названием колонки. Это позволяет отображать таблицу как список карточек с подписями, удобно для чтения на узких экранах.

Автоматизация добавления атрибутов data-label в WordPress с помощью функции

Чтобы не менять вручную таблицы, можно написать PHP-функцию для фильтрации контента и добавления этих атрибутов. Пример функции wpnotes_add_data_labels_to_tables():

function wpnotes_add_data_labels_to_tables( $content ) {
    if ( false === strpos( $content, '<table' ) ) {
        return $content;
    }

    libxml_use_internal_errors(true);
    $dom = new DOMDocument();
    $dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));

    $tables = $dom->getElementsByTagName('table');

    foreach ($tables as $table) {
        $headers = [];
        $thead = $table->getElementsByTagName('thead')->item(0);
        if ($thead) {
            $ths = $thead->getElementsByTagName('th');
            foreach ($ths as $th) {
                $headers[] = trim($th->textContent);
            }
        } else {
            $firstRow = $table->getElementsByTagName('tr')->item(0);
            if ($firstRow) {
                $ths = $firstRow->getElementsByTagName('th');
                if ($ths->length > 0) {
                    foreach ($ths as $th) {
                        $headers[] = trim($th->textContent);
                    }
                } else {
                    $tds = $firstRow->getElementsByTagName('td');
                    foreach ($tds as $td) {
                        $headers[] = '';
                    }
                }
            }
        }

        $tbody = $table->getElementsByTagName('tbody')->item(0);
        if (!$tbody) {
            $tbody = $table;
        }

        foreach ($tbody->getElementsByTagName('tr') as $tr) {
            $cells = $tr->getElementsByTagName('td');
            for ($i = 0; $i < $cells->length; $i++) {
                $header = isset($headers[$i]) ? $headers[$i] : '';
                if ($header) {
                    $cells->item($i)->setAttribute('data-label', $header);
                }
            }
        }
    }

    return $dom->saveHTML();
}
add_filter('the_content', 'wpnotes_add_data_labels_to_tables', 20);

Эта функция автоматически добавит атрибуты data-label ко всем ячейкам таблиц в контенте, используя заголовки колонок из <thead> или первой строки.

Рекомендации по выбору метода адаптивных таблиц

Выбор способа зависит от задач и объема данных:

  • Горизонтальная прокрутка — простой и быстрый метод, подходит для больших таблиц с множеством столбцов, когда важно сохранить структуру.
  • Карточки с CSS — лучше для небольших таблиц, где важна удобочитаемость и мобильный UX, но требует дополнительной верстки.
  • Плагины — оптимальны для тех, кто не хочет писать код, обеспечивают удобный интерфейс и дополнительные функции (сортировка, фильтрация).

Комбинируя эти методы, можно добиться идеального результата для вашего WordPress сайта.

Заключение

Адаптивные таблицы — необходимый элемент современного сайта на WordPress, если вы работаете с табличными данными. Используйте плагины TablePress с расширением Responsive Tables или WP Table Builder для быстрого результата, либо применяйте кастомные стили и PHP-функции для полного контроля. В любом случае, ваши таблицы будут удобны как на десктопах, так и на мобильных устройствах.

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее