При работе с WordPress часто возникает проблема, когда в содержимом постов остаются пустые теги или лишние пробелы, которые могут негативно влиять на отображение страницы и SEO. В этой статье мы подробно рассмотрим, как автоматически удалить пустое содержимое из текста постов, используя готовые решения и собственные функции.
Почему важно удалять пустое содержимое в WordPress
Пустые теги, например, <p></p>, <div></div> или лишние пробелы, могут появляться по разным причинам: при копировании текста из внешних источников, использовании визуальных редакторов или некорректной работе плагинов.
Наличие такого мусора увеличивает размер страницы, замедляет загрузку и ухудшает восприятие контента поисковыми системами. Поэтому регулярная очистка текста помогает поддерживать сайт в хорошем состоянии и улучшает SEO.
Кроме того, удаление пустого содержимого помогает избежать визуальных дефектов в оформлении страниц, например, лишних отступов и пустых блоков.
Как удалить пустые HTML-теги из постов WordPress с помощью кода
Рассмотрим, как написать функцию, которая автоматически будет удалять пустые теги из контента при его выводе.
Добавьте следующий код в файл functions.php вашей темы или в плагин-сниппет:
function cyrtolat_remove_empty_tags($content) {
// Удаляем пустые абзацы
$content = preg_replace('/<p>\s*<\/p>/i', '', $content);
// Удаляем пустые дивы
$content = preg_replace('/<div>\s*<\/div>/i', '', $content);
// Удаляем пустые спаны
$content = preg_replace('/<span>\s*<\/span>/i', '', $content);
// Удаляем пустые заголовки h1-h6
$content = preg_replace('/<h[1-6]>\s*<\/h[1-6]>/i', '', $content);
// Удаляем лишние пробелы и переносы строк
$content = preg_replace('/\s{2,}/', ' ', $content);
return $content;
}
add_filter('the_content', 'cyrtolat_remove_empty_tags');Эта функция с помощью регулярных выражений ищет и удаляет пустые HTML-теги и лишние пробелы из содержимого поста перед выводом на экран. Использование хука the_content гарантирует, что фильтр применяется именно к контенту поста.
Дополнительные улучшения функции удаления пустых тегов
Если вы хотите расширить очистку, можно добавить удаление пустых списков, таблиц и других тегов:
function cyrtolat_remove_more_empty_tags($content) {
$content = preg_replace('/<ul>(\s| |<br>)*<\/ul>/i', '', $content);
$content = preg_replace('/<ol>(\s| |<br>)*<\/ol>/i', '', $content);
$content = preg_replace('/<table>(\s| |<br>)*<\/table>/i', '', $content);
return $content;
}
add_filter('the_content', 'cyrtolat_remove_more_empty_tags', 20);Добавляя фильтры с разным приоритетом, вы обеспечите последовательную очистку содержимого.
Использование плагинов для удаления пустого содержимого в WordPress
Если не хотите писать код, можно использовать готовые плагины. Вот несколько проверенных вариантов:
- Clearfy Pro — многофункциональный плагин оптимизации, который включает очистку контента от пустых тегов и автоматическую оптимизацию HTML. Подробнее на wpshop.ru.
- WP Cleanup — плагин с функцией удаления пустых тегов и оптимизации базы данных.
- Advanced Database Cleaner — помогает не только с базой, но и с удалением мусора в содержимом.
Использование таких плагинов удобно, если у вас много контента и нет времени на ручную доработку.
Пример комплексного решения: фильтрация пустых тегов и оптимизация базы
Чтобы автоматизировать процесс очистки, можно совместить код и плагины. Например, используйте функцию очистки контента из примера выше вместе с плагином Clearfy Pro, который дополнительно удалит из базы лишние ревизии и автосохранения.
Такой подход позволит сохранить не только чистый контент, но и оптимальный размер базы данных, что положительно скажется на скорости сайта.
Советы по предотвращению появления пустых тегов
Помимо удаления, лучше минимизировать появление пустого содержимого изначально. Для этого:
- Используйте качественные визуальные редакторы и плагины, которые корректно формируют HTML.
- При копировании текста из внешних источников очищайте форматирование.
- Проверяйте содержимое перед публикацией и используйте предпросмотр.
- Автоматизируйте оптимизацию с помощью плагинов, чтобы регулярно поддерживать чистоту контента.
Так вы избежите накопления ошибок и улучшите качество сайта.