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

Диагностика проблемы с пустыми текстами и блоками в WordPress

Пустые тексты и пустые блоки (например, пустые параграфы или дивы) часто появляются после копипаста, при использовании визуальных редакторов (Gutenberg), или при импорте контента. Они замедляют загрузку страницы, создают лишние пробелы и могут влиять на SEO. Чтобы понять масштаб проблемы, откройте исходный код страницы (Ctrl+U) и поищите пустые теги, такие как <p></p> или <div></div> без содержимого.

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

  • Проверьте страницу через инструменты разработчика в браузере (F12) — пустые блоки занимают место в DOM, хотя визуально их может не быть.
  • Используйте поиск по коду <p></p> или <div></div>.
  • Проанализируйте страницу через PageSpeed Insights — пустые теги могут быть отмечены как избыточный HTML.

Пошаговое решение: удаление пустых блоков и пустых текстов с помощью кода

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

function wpdream_remove_empty_tags($content) {
    // Удаляем пустые <p> и <div>, которые не содержат текста или других тегов
    $content = preg_replace('/<(p|div)>\s*<\/\1>/i', '', $content);
    // Удаляем <p> с пробелами и  
    $content = preg_replace('/<p>( |\s)*<\/p>/i', '', $content);
    return $content;
}
add_filter('the_content', 'wpdream_remove_empty_tags');

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

Удаление пустых блоков из контента Gutenberg

Gutenberg иногда создаёт пустые параграфы. Чтобы избавиться от них на уровне редактора, можно добавить следующий JavaScript в админку (через enqueue script):

wp.domReady(() => {
    wp.data.subscribe(() => {
        const blocks = wp.data.select('core/block-editor').getBlocks();
        blocks.forEach(block => {
            if (block.name === 'core/paragraph' && !block.attributes.content.trim()) {
                wp.data.dispatch('core/block-editor').removeBlock(block.clientId);
            }
        });
    });
});

Этот код автоматически удалит пустые параграфы при работе в редакторе.

Проверка результата после внедрения

  • Очистите кеш сайта и браузера.
  • Откройте страницу с ранее пустыми блоками, проверьте исходный код (Ctrl+U) — пустые <p> и <div> должны исчезнуть.
  • В инструментах разработчика проверьте, что DOM не содержит пустых тегов.
  • Проверьте визуальное отображение страницы — лишние пробелы и пустые места должны исчезнуть.

Частые ошибки и как их исправить

  • Неправильное регулярное выражение: если regexp слишком широкое, может удалить нужные теги. Проверяйте на тестовом контенте.
  • Удаление содержимого с пробелами: пробельные символы и &nbsp; нужно учитывать, иначе пустые теги не удалятся.
  • Пустые блоки не удаляются из кода темы: возможно, нужно фильтровать не только the_content, а и другие хуки (например, вывод виджетов).
  • JavaScript для редактора не подключён: убедитесь, что скрипт загружается только в админке.

Практические советы по безопасности и производительности

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

Сравнение методов удаления пустых блоков

МетодПлюсыМинусы
PHP-фильтр the_contentПросто реализовать, работает с контентом постаНе удаляет пустые блоки в других местах (виджеты, темы)
JavaScript в редакторе GutenbergУдаляет пустые блоки на этапе редактированияТребует подключения скрипта, не влияет на фронтенд напрямую
Ручное редактирование контентаПолный контроль над содержимымДолго и неудобно при большом объёме
Как удалить пустые атрибуты и классы из HTML в WordPress
31.05.2026
WooCommerce: как удалить варианты товаров без пустых значений
20.07.2026
Как отключить Emoji в WordPress для ускорения сайта
18.03.2026
WooCommerce: как автоматически удалять старые отзывы о товарах
17.06.2026
Как создать динамический список постов с фильтрами в WordPress
29.01.2026