Как удалить неиспользуемые шорткоды в WordPress

Со временем в WordPress-сайте может накопиться множество неиспользуемых шорткодов. Они остаются после удаления плагинов или тем, либо были созданы для временных задач. Такие шорткоды могут выводить на странице некорректный текст, портить верстку и замедлять работу сайта. В этой статье разберёмся, как найти и удалить неиспользуемые шорткоды, используя эффективные методы и примеры кода.

Почему важно удалять неиспользуемые шорткоды

Неиспользуемые шорткоды – это, по сути, мусор в контенте сайта. Если на странице остался шорткод без обработчика, WordPress выведет его как обычный текст, например [old_shortcode], что выглядит некрасиво и снижает качество пользовательского опыта. Кроме того, лишние шорткоды могут влиять на SEO, если поисковые системы видят в контенте непонятные конструкции.

Удаление неиспользуемых шорткодов помогает:

  • Сделать контент чище и понятнее.
  • Избавиться от потенциальных конфликтов с новыми плагинами или темами.
  • Оптимизировать загрузку страниц.

Как определить, какие шорткоды не используются

Первый шаг – это выявить все шорткоды, которые есть в базе данных и определить, какие из них не имеют обработчиков.

Использование функции для списка зарегистрированных шорткодов

WordPress хранит все зарегистрированные шорткоды в глобальном массиве $shortcode_tags. С помощью простой функции можно вывести список всех активных шорткодов:

function wp8_list_registered_shortcodes() {
    global $shortcode_tags;
    echo '<pre>';
    print_r(array_keys($shortcode_tags));
    echo '</pre>';
}
add_action('admin_notices', 'wp8_list_registered_shortcodes');

Этот код выведет список шорткодов, которые обрабатываются на сайте в данный момент. Если какие-то шорткоды встречаются в контенте, но отсутствуют в этом списке, значит они не используются или обработчики для них удалены.

Поиск шорткодов в базе данных

Чтобы найти все шорткоды в записях, можно сделать SQL-запрос к таблице wp_posts (замените префикс на свой):

SELECT ID, post_title, post_content FROM wp_posts WHERE post_content LIKE '%[%]%';

Этот запрос вернёт все записи, где используется какой-либо шорткод (шаблон [... ]). После этого можно вручную или программно проверить какой именно шорткод используется.

Для автоматизации часто используют регулярные выражения, чтобы выделить имена шорткодов из контента.

Как удалить неиспользуемые шорткоды из контента программно

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

Пример функции для очистки контента от неиспользуемых шорткодов

function wp8_remove_unused_shortcodes($content) {
    // Список неиспользуемых шорткодов
    $unused_shortcodes = array('old_shortcode', 'my_old_shortcode', 'deprecated_shortcode');

    foreach ($unused_shortcodes as $shortcode) {
        // Удаляем шорткод с параметрами и без
        $pattern = get_shortcode_regex(array($shortcode));
        $content = preg_replace('/' . $pattern . '/s', '', $content);
    }
    return $content;
}
add_filter('the_content', 'wp8_remove_unused_shortcodes', 20);

В этой функции мы используем WordPress-функцию get_shortcode_regex(), чтобы получить правильное регулярное выражение для удаляемого шорткода. Затем с помощью preg_replace удаляем все его вхождения из контента.

Преимущество такого подхода — можно централизованно управлять списком неиспользуемых шорткодов и автоматически чистить контент без изменения записей в базе сразу.

Как удалить шорткоды прямо в базе данных

Если хотите сразу очистить записи в базе, можно сделать это через WP-CLI или вручную SQL-запросами с регулярными выражениями (если поддерживает СУБД). Но будьте осторожны и сделайте резервную копию.

Пример WP-CLI команды для замены всех вхождений шорткода:

wp search-replace '\[old_shortcode[^\]]*\]' '' --regex --all-tables

Эта команда удалит все упоминания [old_shortcode] с параметрами из всех таблиц.

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

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

  • Shortcode Cleaner Lite — позволяет находить неработающие шорткоды и удалять их из контента.
  • Remove Orphan Shortcodes — помогает выявлять шорткоды, у которых отсутствуют обработчики, и очищать записи.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wp8ru&utm_medium=article&utm_campaign=kak-udalit-neispolzuemye-shortkody-v-wordpress) — включает инструменты для оптимизации, в том числе очистку от лишних шорткодов.

Использование таких плагинов облегчает задачу, особенно если на сайте много контента и сложная структура.

Советы по предотвращению накопления неиспользуемых шорткодов

Чтобы в будущем избежать появления неиспользуемых шорткодов, рекомендуем:

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

Выводы

Удаление неиспользуемых шорткодов — важная часть поддержания чистоты и производительности сайта на WordPress. Используйте проверенные методы, чтобы найти неработающие шорткоды, и автоматизируйте их удаление через функции или плагина. Это улучшит внешний вид сайта и упростит его поддержку.

Как сделать отзывы с фотографиями в WordPress: плагины и примеры кода
07.03.2026
Как удалить кеш и оптимизировать WordPress без плагинов
09.02.2026
WooCommerce: автоматическое изменение стоимости товаров по ролям пользователей
07.05.2026
Автоматизация обработки форм в WordPress: практические примеры и код
20.11.2025
Как сделать просмотр видео в AJAX на WordPress
26.02.2026