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

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

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

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

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

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

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

Для начала нужно составить список всех зарегистрированных на сайте шорткодов. Сделать это можно с помощью функции wpplugin_get_all_shortcodes():

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

Вызов этой функции вернёт массив с именами всех зарегистрированных шорткодов.

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

function wpplugin_is_shortcode_used($shortcode) {
    global $wpdb;
    $like = '%[' . $wpdb->esc_like($shortcode) . '%';
    $query = $wpdb->prepare(
        "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
        $like
    );
    $count = $wpdb->get_var($query);
    return $count > 0;
}

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

$all_shortcodes = wpplugin_get_all_shortcodes();
$unused_shortcodes = [];
foreach ($all_shortcodes as $shortcode) {
    if (!wpplugin_is_shortcode_used($shortcode)) {
        $unused_shortcodes[] = $shortcode;
    }
}

Этот список — кандидаты на удаление.

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

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

Удаление шорткода происходит через функцию remove_shortcode(). Например:

remove_shortcode('example_shortcode');

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

add_action('init', function() {
    remove_shortcode('example_shortcode');
}, 100);

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

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

Можно создать WP-CLI команду или админ-скрипт, который будет выводить список неиспользуемых шорткодов и предлагать их удалить. Ниже пример реализации простой функции для удаления всех неиспользуемых шорткодов из текущего списка:

function wpplugin_remove_unused_shortcodes() {
    $all_shortcodes = wpplugin_get_all_shortcodes();
    foreach ($all_shortcodes as $shortcode) {
        if (!wpplugin_is_shortcode_used($shortcode)) {
            remove_shortcode($shortcode);
        }
    }
}
add_action('init', 'wpplugin_remove_unused_shortcodes', 100);

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

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

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

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

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

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

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

Резюме

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

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

Как использовать WP-Cron для автоматизации задач в WordPress
12.05.2026
Автоматическое удаление старых записей через AJAX в WordPress: пошаговое руководство
16.03.2026
Как использовать фильтр woocommerce_order_item_product для добавления пользовательских данных к товарам заказа в WooCommerce
19.05.2026
Как избежать проблем с распределением памяти в WordPress плагинах
15.04.2026
Удаление редко используемых полей продукта WooCommerce
26.02.2026