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

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

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

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

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

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

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

1. Ручной поиск по базе данных и контенту

Можно использовать SQL-запрос для поиска всех записей, где встречаются шорткоды:

SELECT ID, post_content FROM wp_posts WHERE post_content LIKE '%[%]%' AND post_status = 'publish';

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

Недостаток этого метода — он трудоёмкий и не показывает, какие шорткоды зарегистрированы, но не используются.

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

Плагин Shortcode Cleaner Lite помогает автоматически обнаружить неиспользуемые шорткоды и очистить их из контента без потери данных.

Также полезен плагин Shortcodes Ultimate — он позволяет посмотреть список активных шорткодов и управлять ими.

Для комплексного анализа можно использовать плагин Code Snippets совместно с кастомным PHP кодом, который мы рассмотрим далее.

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

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

Пример функции для темы или плагина с префиксом wpassist_:

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

function wpassist_remove_unused_shortcodes_from_content($content) {
    $registered = wpassist_get_all_registered_shortcodes();
    // Паттерн для поиска всех шорткодов
    preg_match_all('/\[(\[?)(\w+)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*?)*)(\/?)(\]?)/', $content, $matches);
    if(empty($matches[2])) {
        return $content;
    }
    foreach($matches[2] as $key => $shortcode) {
        if(!in_array($shortcode, $registered)) {
            // Удаляем весь шорткод из контента
            $pattern = preg_quote($matches[0][$key], '/');
            $content = preg_replace('/' . $pattern . '/', '', $content);
        }
    }
    return $content;
}

// Хук для фильтрации контента перед выводом
add_filter('the_content', 'wpassist_remove_unused_shortcodes_from_content');

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

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

Оптимизация и поддержка чистоты базы данных

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

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

Рекомендации по использованию шорткодов для предотвращения проблем

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

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

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

WooCommerce: автоматическое отключение неактивных товаров по времени
11.06.2026
Как изменить URL текущей страницы в WordPress без перенаправления
27.02.2026
Как автоматизировать удаление старого контента в WordPress
21.02.2026
Как добавить динамические табуляторы в WordPress без плагинов
10.04.2026
Как использовать hook pre_get_posts для фильтра записей в WordPress
09.12.2025