Как добавить уникальные классы для блоков Gutenberg в GeneratePress

В современном WordPress редакторе Gutenberg работа с блоками стала стандартом для создания контента. Однако часто возникает задача назначить уникальные CSS-классы определённым блокам для точечной стилизации, особенно если вы используете тему GeneratePress, где важна аккуратная и быстрая кастомизация.

Почему важно добавлять уникальные классы к блокам Gutenberg

Уникальные CSS-классы позволяют:

  • Изолировать стили для конкретных блоков без влияния на другие элементы;
  • Создавать сложные визуальные эффекты и анимации;
  • Упрощать поддержку кода и последующие доработки;
  • Обеспечивать совместимость с плагинами и дополнительными скриптами.

В теме GeneratePress, где упор сделан на производительность и минимализм, правильное добавление классов помогает сохранить чистоту и лёгкость кода.

Добавление уникальных классов через интерфейс Gutenberg

Начнём с простого способа, который доступен из коробки в Gutenberg:

  1. Выберите нужный блок в редакторе WordPress.
  2. В правой панели настроек найдите вкладку «Дополнительно».
  3. В поле «Дополнительные CSS-классы» введите уникальное имя, например generatepress-custom-block.
  4. Сохраните изменения и перейдите в файл стилей темы, чтобы прописать нужные правила.

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

Автоматическое добавление уникальных классов с помощью кода в GeneratePress

Для автоматизации можно использовать фильтр WordPress, который добавит классы к блокам при их выводе на фронтенде. В файле functions.php вашей дочерней темы GeneratePress добавьте следующий код:

function generatepress_add_custom_class_to_gutenberg_block( $block_content, $block ) {
    // Например, добавим класс для блока 'core/paragraph'
    if ( isset( $block['blockName'] ) && 'core/paragraph' === $block['blockName'] ) {
        // Проверяем наличие уже существующих классов
        $class_to_add = 'generatepress-paragraph-custom';
        if ( strpos( $block_content, 'class="' ) !== false ) {
            $block_content = str_replace( 'class="', 'class="' . $class_to_add . ' ', $block_content );
        } else {
            // Если классов нет, добавляем атрибут class
            $block_content = preg_replace( '/<p/', '<p class="' . $class_to_add . '"', $block_content, 1 );
        }
    }
    return $block_content;
}
add_filter( 'render_block', 'generatepress_add_custom_class_to_gutenberg_block', 10, 2 );

Этот код добавит класс generatepress-paragraph-custom ко всем параграфам. Вы можете адаптировать условие, чтобы обрабатывать другие типы блоков, например, изображения или заголовки.

Расширение: добавление классов по атрибутам блока

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

function generatepress_dynamic_class_by_attributes( $block_content, $block ) {
    if ( isset( $block['attrs']['customClassName'] ) ) {
        $custom_class = sanitize_html_class( $block['attrs']['customClassName'] );
        if ( strpos( $block_content, 'class="' ) !== false ) {
            $block_content = str_replace( 'class="', 'class="' . $custom_class . ' ', $block_content );
        } else {
            $block_content = preg_replace( '/<([a-z0-9]+)/', '<$1 class="' . $custom_class . '"', $block_content, 1 );
        }
    }
    return $block_content;
}
add_filter( 'render_block', 'generatepress_dynamic_class_by_attributes', 10, 2 );

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

Пример кастомизации стилей с уникальными классами

После того как класс добавлен, пропишем стили в файле style.css дочерней темы:

.generatepress-paragraph-custom {
    background-color: #f0f8ff;
    padding: 15px;
    border-left: 4px solid #0073aa;
    font-style: italic;
}

Такой параграф сразу выделится на странице и будет легко управляться через CSS без затрагивания других элементов.

Полезные плагины для работы с кастомными классами в Gutenberg и GeneratePress

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

  • Advanced Gutenberg — добавляет дополнительные настройки к блокам, включая возможность добавления классов и атрибутов.
  • Block Lab — позволяет создавать собственные блоки с предустановленными классами и стилями.
  • Clearfy Proподробнее на wpshop.ru) — оптимизирует работу WordPress и добавляет расширенные настройки безопасности и кастомизации, в том числе для блоков.

Советы по оптимизации и поддержке кода

При добавлении уникальных классов старайтесь придерживаться следующих рекомендаций:

  • Используйте префиксы, связанные с темой или проектом, например, gp- или generatepress-, чтобы избежать конфликтов.
  • Пишите читаемый и документированный код, особенно если планируете передавать проект другим разработчикам.
  • Тестируйте стили в разных браузерах и на мобильных устройствах.
  • Используйте дочернюю тему GeneratePress для внесения изменений — это сохранит возможность обновлять основную тему без потери правок.
WooCommerce: автоматическое изменение статуса и названия товара после покупки в GeneratePress
29.05.2026
Добавление поддержки локализации в тему GeneratePress
30.12.2025
Как добавить кастомные виджеты в GeneratePress с помощью кода
12.12.2025
Как добавить динамические строки в GeneratePress для улучшения функционала сайта
01.11.2025
WooCommerce: как автоматически очищать корзину после успешной оплаты в GeneratePress
21.05.2026