Шорткоды — один из самых удобных инструментов WordPress для динамического вывода контента. Но со временем, особенно если сайт переживал миграции, смену тем и плагинов, в базе и материалах могут накопиться неиспользуемые шорткоды. Это создает лишний мусор, замедляет работу сайта и вызывает ошибки при выводе.
Почему важно удалять неиспользуемые шорткоды
Неиспользуемые шорткоды влияют на производительность и удобство работы с сайтом. Во-первых, WordPress пытается выполнить парсинг и обработку всех шорткодов, включая те, для которых нет обработчика — они выводятся в сыром виде, портя дизайн и пользовательский опыт.
Во-вторых, наличие лишних шорткодов усложняет поддержку сайта, особенно если их много и они разбросаны по разным страницам и постам. Это также негативно влияет на SEO — поисковые роботы видят неразобранный код.
Оптимизация и чистка шорткодов — важный этап технической поддержки, который стоит выполнять регулярно.
Как найти неиспользуемые шорткоды на сайте WordPress
Поиск с помощью SQL-запросов
Для начала можно попытаться найти все шорткоды, которые встречаются в базе данных. Типичный формат шорткода — [shortcode] или [shortcode param="value"]. Можно выполнить SQL-запрос к таблице wp_posts для поиска таких конструкций:
SELECT ID, post_title, post_content FROM wp_posts WHERE post_content LIKE '%[%]%' AND post_content NOT LIKE '%\[shortcode_name%';Но этот метод требует точного указания имён шорткодов, которые вы хотите проверить. Чтобы собрать список всех шорткодов, можно использовать PHP-функцию:
function wpcourse_get_all_shortcodes() {
global $shortcode_tags;
return array_keys($shortcode_tags);
}Эта функция вернет все зарегистрированные шорткоды на сайте. Но нам нужны те, которые есть в контенте, но не зарегистрированы — их и нужно удалить.
Использование плагинов для поиска шорткодов
Плагин Shortcodes Finder помогает найти все шорткоды, встречающиеся в контенте. Он выведет список с указанием страниц и постов, где они используются.
После установки плагина вы можете быстро выявить старые или неработающие шорткоды, которые остались после удаления плагинов или тем.
Как безопасно удалить неиспользуемые шорткоды
Метод 1: Ручное удаление через базу данных
Если шорткод встречается редко, можно вручную отредактировать страницы и посты, удаляя или заменяя его. В редакторе WordPress воспользуйтесь поиском по контенту и удалите шорткод.
Для массовой очистки можно использовать SQL-запросы с функцией замены:
UPDATE wp_posts SET post_content = REPLACE(post_content, '[old_shortcode]', '') WHERE post_content LIKE '%[old_shortcode]%';Но будьте осторожны, обязательно сделайте резервную копию базы перед выполнением.
Метод 2: Автоматическое удаление через PHP-фильтр
Чтобы избежать вывода нераспознанных шорткодов, можно добавить фильтр, который автоматически удалит все шорткоды, для которых нет обработчика:
function wpcourse_remove_unused_shortcodes($content) {
global $shortcode_tags;
return preg_replace_callback('/\[(\[?)([^\] ]+)(?![\w-])[^\]]*\]?/', function($matches) use ($shortcode_tags) {
$shortcode = $matches[2];
if (!isset($shortcode_tags[$shortcode])) {
return '';
}
return $matches[0];
}, $content);
}
add_filter('the_content', 'wpcourse_remove_unused_shortcodes');Этот код перебирает все шорткоды в контенте и удаляет те, которые не зарегистрированы в WordPress. Такой подход хорош для временного решения или если удалять шорткоды из базы пока нельзя.
Примеры полезных плагинов для управления шорткодами
1. Clearfy Pro — оптимизационный плагин, который среди прочего умеет чистить и оптимизировать контент, включая шорткоды. Отлично подходит для комплексной очистки и ускорения сайта. Подробнее на wpshop.ru.
2. Shortcodes Ultimate — популярный набор шорткодов. Если вы переходите с этого плагина на другой, важно удалить старые шорткоды из контента, чтобы не было «мусора».
Рекомендации по поддержке чистоты шорткодов на сайте
Чтобы избежать накопления неиспользуемых шорткодов, придерживайтесь следующих правил:
- Перед удалением плагинов, которые добавляют шорткоды, замените их на альтернативы или удалите шорткоды из контента.
- Регулярно проверяйте контент на наличие нераспознанных шорткодов с помощью плагинов.
- Используйте централизованный реестр шорткодов, если разрабатываете много кастомных решений.
- Оптимизируйте вывод контента, например, применяя фильтр для удаления неиспользуемых шорткодов, как показано выше.
Заключение
Удаление неиспользуемых шорткодов — важная и полезная задача для поддержания чистоты и производительности WordPress-сайта. Используя описанные методы и инструменты, вы сможете проводить как ручную, так и автоматическую очистку, сохраняя удобство и стабильность сайта.