Как удалить пустые тексты и пустые блоки в 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Удаляет пустые блоки на этапе редактированияТребует подключения скрипта, не влияет на фронтенд напрямую
Ручное редактирование контентаПолный контроль над содержимымДолго и неудобно при большом объёме
Как удалить версии WooCommerce из HTML кода WordPress сайта
13.11.2025
Как использовать WPCommunity для создания собственного форума на WordPress
03.01.2026
Как избежать файловых конфликтов при обновлении WordPress и плагинов
23.12.2025
Автоматизация обновления контента в WordPress с WPRemark
24.03.2026
Как удалить мета-тег generator из WordPress без плагина
20.12.2025