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

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

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

Шорткоды — мощный инструмент для быстрого добавления функционала в записи и страницы. Однако со временем некоторые из них устаревают или перестают быть актуальными. Если забыть удалить их, это повлечёт:

  • Ошибки и предупреждения на сайте, если шорткод больше не объявлен;
  • Загрязнение контента и базы данных, что затрудняет поддержку сайта;
  • Потенциальные проблемы с производительностью из-за лишних обработок;
  • Плохой пользовательский опыт в редакторе из-за появления «сырого» текста шорткодов.

Поэтому регулярная чистка — важная часть поддержки WordPress-сайта.

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

Первым шагом нужно понять, какие шорткоды зарегистрированы, но не используются в текущем контенте. Для этого:

  1. Получите список всех зарегистрированных шорткодов с помощью функции wpstart_get_registered_shortcodes() (пример ниже);
  2. Проверьте, встречается ли каждый шорткод в записях, страницах, мета-полях или виджетах;
  3. Составьте список неиспользуемых шорткодов для дальнейшей обработки.

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

function wpstart_get_registered_shortcodes() {
    global $shortcode_tags;
    return array_keys($shortcode_tags);
}

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

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

Однако такой метод нужно автоматизировать для всех шорткодов.

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

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

Пример функции для удаления шорткода из контента

function wpstart_remove_shortcode_from_content($shortcode) {
    $args = [
        'post_type' => 'any',
        'posts_per_page' => -1,
        's' => '[' . $shortcode
    ];
    $posts = get_posts($args);
    foreach ($posts as $post) {
        $content = $post->post_content;
        $pattern = get_shortcode_regex([$shortcode]);
        $new_content = preg_replace('/' . $pattern . '/s', '', $content);
        if ($new_content !== $content) {
            wp_update_post([
                'ID' => $post->ID,
                'post_content' => $new_content
            ]);
        }
    }
}

Эта функция получает все посты с шорткодом и удаляет его с помощью регулярного выражения, основанного на стандартной функции get_shortcode_regex.

Удаление регистрации шорткода в коде

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

  • Проверьте файлы functions.php вашей темы и дочерней темы;
  • Просмотрите код активных плагинов на наличие вызова add_shortcode('shortcode_name', ...);
  • Удалите или закомментируйте регистрацию неиспользуемых шорткодов, чтобы избежать ошибок и предупреждений.

Использование плагина Clearfy Pro для управления шорткодами

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

  • Обнаружить неиспользуемые шорткоды;
  • Отключить их одним кликом;
  • Очистить базу данных от остатков шорткодов и метаданных;
  • Повысить безопасность и скорость сайта.

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

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

function wpstart_conditional_shortcode_handler($atts, $content = null, $tag = '') {
    global $post;
    if (strpos($post->post_content, '[' . $tag) === false) {
        return '';
    }
    // Здесь логика обработки шорткода
    return 'Результат шорткода';
}

add_shortcode('example', 'wpstart_conditional_shortcode_handler');

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

Заключение

Регулярный аудит и удаление неиспользуемых шорткодов — залог чистого и быстрого WordPress-сайта. Вы можете сочетать ручные методы с автоматическими, используя собственный код и инструменты вроде Clearfy Pro. Важно не только удалить шорткод из контента, но и отключить его регистрацию в теме и плагинах.

Если нужна дополнительная оптимизация базы данных или помощь с очисткой, рекомендую ознакомиться с возможностями плагина Clearfy Pro — это упростит задачи и обеспечит безопасность.

Как удалить неактивные мета данные в WordPress для оптимизации базы
15.03.2026
Как установить и настроить OmniVideo в WordPress
25.02.2026
Как создать автоматический импорт продуктов в WordPress из Excel файла
02.01.2026
Как создать динамическую таблицу в WordPress с помощью шорткода
02.12.2025
Как сделать автоматический сбор и отправку логов в WordPress
11.02.2026