В процессе работы с WordPress часто возникает ситуация, когда на страницах или в записях остаются устаревшие или неиспользуемые шорткоды. Они отображаются как текст, портят внешний вид сайта и могут негативно влиять на производительность. В этой статье мы подробно разберём, как эффективно удалить или скрыть ненужные шорткоды, оставшиеся после удаления плагинов или тем, а также как автоматизировать этот процесс.
Что такое редундантные шорткоды и почему их нужно удалять
Редундантные шорткоды — это шорткоды, которые больше не поддерживаются установленными плагинами или темами, но остались в контенте сайта. Они часто появляются в виде текста типа [old_shortcode] в местах, где раньше выводился функционал. Их наличие не только ухудшает визуальное восприятие страницы, но и может:
- Негативно влиять на SEO из-за появления мусорного контента.
- Загромождать базу данных и делать редактор неудобным.
- Вызывать конфликты с другими плагинами или темами.
Поэтому регулярная очистка от таких шорткодов – важный аспект технического обслуживания сайта.
Как найти и удалить редундантные шорткоды вручную
Если шорткодов немного, их можно удалить вручную через редактор записей или страниц:
- Откройте страницу или запись в редакторе WordPress.
- Переключитесь в текстовый (HTML) режим редактора.
- Найдите шорткоды, например
[old_shortcode]или[plugin_shortcode]. - Удалите их и сохраните изменения.
Но если таких шорткодов много, такой способ займёт слишком много времени и чреват ошибками.
Автоматическое удаление редундантных шорткодов через SQL-запрос
Можно удалить шорткоды напрямую из базы данных, используя SQL-запросы к таблице wp_posts. Это быстрый способ, но требует аккуратности и резервного копирования базы данных перед выполнением.
Пример запроса для удаления шорткодов [old_shortcode] из контента всех записей:
UPDATE wp_posts SET post_content = REPLACE(post_content, '[old_shortcode]', '') WHERE post_content LIKE '%[old_shortcode]%';Если шорткод имеет параметры, лучше использовать регулярные выражения, например, через плагин WP-CLI или специальные инструменты для поиска и замены с поддержкой regex.
Как скрыть редундантные шорткоды с помощью фильтров WordPress
Если удалять шорткоды сразу не хочется, можно временно скрыть их вывод с помощью фильтра the_content. Это удобно для быстрого исправления без правки контента.
Добавьте в файл functions.php вашей темы следующий код:
function clearfy_remove_redundant_shortcodes($content) {
// Удаляем шорткод [old_shortcode] вместе с параметрами
$pattern = '/\[old_shortcode.*?\]/';
$content = preg_replace($pattern, '', $content);
return $content;
}
add_filter('the_content', 'clearfy_remove_redundant_shortcodes');Этот код будет автоматически удалять все вхождения [old_shortcode] из вывода контента без изменения самой записи.
Плагины для поиска и удаления шорткодов
Для пользователей, предпочитающих готовые решения, есть несколько удобных плагинов:
- Shortcode Cleaner Lite — позволяет найти и удалить неиспользуемые шорткоды в контенте.
- Remove Orphan Shortcodes — автоматический поиск устаревших шорткодов и их удаление.
- Clearfy Pro — в расширенной версии есть инструменты для оптимизации и очистки контента, включая работу с шорткодами. Подробнее на wpshop.ru.
После установки плагина достаточно запустить поиск и выбрать, какие шорткоды удалить.
Создание пользовательской функции для удаления нескольких шорткодов
Если нужно удалить сразу несколько шорткодов, можно расширить функцию из предыдущего примера:
function clearfy_remove_multiple_shortcodes($content) {
$shortcodes = ['old_shortcode', 'unused_shortcode', 'deprecated_shortcode'];
foreach ($shortcodes as $shortcode) {
$pattern = '/\[' . preg_quote($shortcode, '/') . '.*?\]/';
$content = preg_replace($pattern, '', $content);
}
return $content;
}
add_filter('the_content', 'clearfy_remove_multiple_shortcodes');Этот код удобно поддерживать и расширять при необходимости.
Советы по предотвращению появления редундантных шорткодов
Чтобы в будущем не сталкиваться с подобными проблемами, рекомендуется:
- Перед удалением плагина удалять все его шорткоды из контента или заменять на альтернативы.
- Использовать системные инструменты для поиска шорткодов, например, WP CLI команды.
- Регулярно проводить аудит контента на предмет устаревших шорткодов.
- Внедрять автоматическую очистку в процесс обновления сайта (например, через CRON задачи).
Таким образом можно поддерживать контент в чистом и оптимизированном виде.