Как удалить пустые блоки визуального редактора WordPress

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

Почему в WordPress появляются пустые блоки Gutenberg

Пустые блоки могут появляться по разным причинам:

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

Такие блоки не несут смысловой нагрузки, но делают HTML код громоздким и могут влиять на скорость загрузки страниц.

Как найти и удалить пустые блоки с помощью PHP-функции

Для удаления пустых блоков можно использовать фильтр the_content. Мы напишем функцию cyrtolatRemoveEmptyBlocks, которая будет искать в HTML-коде контента пустые блоки и удалять их.

Пример функции:

function cyrtolatRemoveEmptyBlocks($content) {
    // Регулярное выражение для поиска пустых блоков Gutenberg
    $pattern = '/<!-- wp:([^ ]+) -->\s*<\/?\1[^>]*>\s*<!-- /wp:\1 -->/m';
    
    // Удаляем все пустые блоки
    $content = preg_replace($pattern, '', $content);
    
    // Удаляем пустые параграфы
    $content = preg_replace('/<p>\s*<\/p>/m', '', $content);

    return $content;
}
add_filter('the_content', 'cyrtolatRemoveEmptyBlocks', 20);

Объяснение кода:

  • Первое регулярное выражение ищет блоки Gutenberg, которые не содержат внутреннего содержимого (только комментарии блоков и пустые теги).
  • Второе удаляет пустые параграфы <p></p>.
  • Функция подключается к фильтру the_content с приоритетом 20, чтобы очистить контент перед выводом.

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

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

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

  • Clearfy Pro — мощный набор инструментов для оптимизации сайта, включая очистку контента от лишних блоков и тегов. Подробнее: Clearfy Pro на WPSHOP.
  • ABC Pagination — плагин, который не только улучшает навигацию, но и оптимизирует вывод контента, уменьшая пустые блоки при пагинации.
  • WPRemark — полезен для очистки комментариев и контента, помогает убирать ненужные пустоты.

Эти плагины можно настроить для автоматической очистки контента при сохранении или выводе.

Как автоматизировать удаление пустых блоков при сохранении записи

Чтобы пустые блоки не попадали в базу данных, можно автоматизировать их удаление на этапе сохранения записи, используя хук save_post:

function cyrtolatCleanPostContentOnSave($post_id) {
    // Проверяем тип записи и права
    if (wp_is_post_revision($post_id) || get_post_type($post_id) !== 'post') {
        return;
    }

    $post = get_post($post_id);
    $content = $post->post_content;

    $clean_content = cyrtolatRemoveEmptyBlocks($content);

    if ($clean_content !== $content) {
        // Обновляем запись с очищенным контентом
        wp_update_post([
            'ID' => $post_id,
            'post_content' => $clean_content,
        ]);
    }
}
add_action('save_post', 'cyrtolatCleanPostContentOnSave');

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

Проверка и отладка: как убедиться, что пустые блоки удалены

После внедрения решений стоит проверить, что пустые блоки действительно удаляются:

  • Откройте запись в редакторе Gutenberg и посмотрите, нет ли лишних пустых блоков.
  • Посмотрите исходный код страницы на фронтенде — пустые теги и комментарии блоков должны отсутствовать.
  • Используйте инструменты отладки, например, Query Monitor, чтобы проверить, что контент выводится корректно.

Если вы используете кэширование, очистите кэш после изменений.

Заключение

Удаление пустых блоков Gutenberg — важный этап оптимизации WordPress-сайта. Правильная очистка улучшает удобство редактирования, повышает скорость загрузки и качество SEO. В статье рассмотрены практические методы — от простого PHP-кода до использования профессиональных плагинов с примерами кода и разъяснениями.

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

⭐⭐⭐⭐⭐
Как создать автоматическую удалённую оптимизацию базы данных WordPress
25.01.2026
Как создать собственную настройку плагинов WordPress
12.11.2025
Как сделать автоматическую оптимизацию базы данных WordPress без плагинов
10.02.2026
WooCommerce: как автоматически исключить из каталога товары по основному атрибуту
21.05.2026
Как избежать проблем с кэшированием в WordPress: практическое руководство
02.02.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее