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

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

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

Неиспользуемые шорткоды — это не просто эстетическая проблема. Они:

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

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

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

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

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

function wpfaq_find_unused_shortcodes() {
    global $wpdb;

    // Получаем список всех зарегистрированных шорткодов
    $registered = array_keys($GLOBALS['shortcode_tags']);

    // Получаем все посты с контентом
    $posts = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_status = 'publish' AND post_type IN ('post', 'page')");

    $unused_shortcodes = [];

    foreach ($posts as $post) {
        // Ищем все шорткоды в контенте
        if (preg_match_all('/\[([^\]\s]+)(\s[^\]]*)?\]/', $post->post_content, $matches)) {
            foreach ($matches[1] as $shortcode) {
                if (!in_array($shortcode, $registered)) {
                    $unused_shortcodes[$shortcode][] = $post->ID;
                }
            }
        }
    }

    return $unused_shortcodes;
}

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

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

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

function wpfaq_remove_unused_shortcodes($shortcodes) {
    global $wpdb;

    foreach ($shortcodes as $shortcode => $post_ids) {
        foreach ($post_ids as $post_id) {
            $post = get_post($post_id);
            if ($post) {
                $pattern = '/\[' . preg_quote($shortcode, '/') . '(\s[^\]]*)?\]/';
                $new_content = preg_replace($pattern, '', $post->post_content);

                if ($new_content !== $post->post_content) {
                    // Обновляем пост
                    wp_update_post([
                        'ID' => $post_id,
                        'post_content' => $new_content
                    ]);
                }
            }
        }
    }
}

Используйте функцию wpfaq_find_unused_shortcodes() для получения массива неиспользуемых шорткодов, а затем передайте его в wpfaq_remove_unused_shortcodes() для очистки.

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

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

  • Shortcode Cleaner Lite — автоматически удаляет или заменяет нераспознанные шорткоды на сайте.
  • Better Search Replace — позволяет искать и заменять текст (включая шорткоды) в базе данных, полезен для массовой очистки.
  • Clearfy Pro — расширенный плагин оптимизации, который также может помочь с очисткой контента и управлением шорткодами.

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

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

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

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

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

function wpfaq_shortcode_placeholder() {
    return '';
}
add_shortcode('oldshortcode', 'wpfaq_shortcode_placeholder');

Это гарантирует, что даже если старый шорткод не нужен, он не будет отображаться на сайте.

Заключение

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

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

WooCommerce: автоматическое изменение статуса заказа при отключении метода оплаты
30.06.2026
Как установить ограничения на регистрацию в WordPress по домену email
24.01.2026
Как автоматически очистить базу данных от старых transient-опций в WordPress
09.03.2026
Как автоматически изменять данные пользователя в WordPress при регистрации
09.02.2026
Как добавить владельца (автора) постов в WordPress и управлять им программно
20.02.2026