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

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

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

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

  • Появление на сайте некорректного вывода — вместо содержимого отображается текст шорткода, например [old_shortcode].
  • Ухудшение производительности из-за лишних обработок при загрузке страниц.
  • Затруднения при обновлениях и миграциях — старый код не поддерживается и мешает развитию сайта.

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

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

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

Поиск вручную в админке

Можно воспользоваться функцией поиска по записям и страницам в редакторе WordPress, введя название шорткода в формате [shortcode]. Но это неудобно и долго для большого сайта.

Поиск через SQL-запрос

Более эффективно — выполнить SQL-запрос по таблице wp_posts для обнаружения всех записей, где встречается конкретный шорткод. Например, для шорткода [old_shortcode]:

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

По результатам запроса можно составить список страниц и записей, где используется шорткод.

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

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

  • Shortcode Finder — сканирует контент и выводит список шорткодов.
  • Clearfy Pro — в разделе оптимизации есть функция анализа и удаления неиспользуемых шорткодов.

Такие инструменты упрощают процесс и позволяют быстро получить полный обзор шорткодов.

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

После того как вы выявили неиспользуемые шорткоды, нужно очистить контент записей и страниц, где они встречаются. Сделать это можно через PHP-код с помощью WP_Query и регулярных выражений.

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

function wpin_remove_unused_shortcodes() {
    $shortcodes_to_remove = array('old_shortcode', 'deprecated_shortcode');

    $args = array(
        'post_type' => array('post', 'page'),
        'posts_per_page' => -1,
        's' => '[', // Поиск по символу [
    );

    $query = new WP_Query($args);

    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $post_id = get_the_ID();
            $content = get_post_field('post_content', $post_id);

            $original_content = $content;
            foreach ($shortcodes_to_remove as $shortcode) {
                // Регулярное выражение для удаления шорткода и его содержимого
                $pattern = '/\[' . preg_quote($shortcode, '/') . '(\s[^\]]*)?\](.*?)\[\/'. preg_quote($shortcode, '/') .'\]/s';
                $content = preg_replace($pattern, '', $content);

                // Удаление одиночных шорткодов без закрывающего тега
                $pattern_self_closing = '/\[' . preg_quote($shortcode, '/') . '(\s[^\]]*)?\/\]/';
                $content = preg_replace($pattern_self_closing, '', $content);

                // Удаление одиночных шорткодов без слеша
                $pattern_single = '/\[' . preg_quote($shortcode, '/') . '(\s[^\]]*)?\]/';
                $content = preg_replace($pattern_single, '', $content);
            }

            if ($content !== $original_content) {
                wp_update_post(array(
                    'ID' => $post_id,
                    'post_content' => $content
                ));
            }
        }
        wp_reset_postdata();
    }
}
// Запуск функции один раз, например, через хук admin_init
add_action('admin_init', 'wpin_remove_unused_shortcodes');

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

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

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

function wpin_disable_unused_shortcodes() {
    remove_shortcode('old_shortcode');
    remove_shortcode('deprecated_shortcode');
}
add_action('init', 'wpin_disable_unused_shortcodes', 20);

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

Рекомендации по работе с шорткодами и их очистке

При работе с шорткодами важно соблюдать несколько правил:

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

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

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

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

Выводы

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

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

Автоматическое удаление товаров из корзины WooCommerce при отсутствии на складе
29.04.2026
Как создать собственный виджет WordPress с примерами кода
18.03.2026
WooCommerce: как установить ограничение на количество товаров в корзине
21.07.2026
Как использовать хуки в WordPress правильно: практическое руководство
14.11.2025
Автоматизация обработки возвратов и обменов в WooCommerce
18.05.2026