WordPress: как удалить или изменить shortcode без плагинов

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

Что такое shortcode и почему их нужно менять

Shortcode — это специальный тег в квадратных скобках, который динамически заменяется на определенный функционал или контент. Например, [gallery] выводит галерею изображений, а [contact-form-7] — форму обратной связи.

Однако не всегда стандартное поведение шорткодов устраивает. Иногда нужно изменить вывод, добавить параметры, либо полностью убрать shortcode, который конфликтует с другими элементами сайта.

Удаление или изменение shortcode полезно для оптимизации сайта и предотвращения ошибок вывода.

Как удалить shortcode в WordPress

Для удаления shortcode WordPress предоставляет функцию remove_shortcode(). Она принимает на вход имя шорткода и удаляет его из списка зарегистрированных.

Например, чтобы удалить shortcode [example], добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:

function wpsnippets_remove_example_shortcode() {
    remove_shortcode('example');
}
add_action('init', 'wpsnippets_remove_example_shortcode');

Обратите внимание, что хук init — оптимальное место для удаления шорткодов, так как они обычно регистрируются до этого момента.

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

Удаление нескольких шорткодов за один вызов

Чтобы удалить сразу несколько шорткодов, достаточно вызвать remove_shortcode() для каждого из них:

function wpsnippets_remove_multiple_shortcodes() {
    $shortcodes = ['example1', 'example2', 'example3'];
    foreach ($shortcodes as $sc) {
        remove_shortcode($sc);
    }
}
add_action('init', 'wpsnippets_remove_multiple_shortcodes');

Как изменить поведение существующего shortcode

Изменить поведение shortcode можно двумя способами:

  • Перерегистрировать шорткод с новым коллбеком, предварительно удалив старый
  • Обработать шорткод с помощью фильтров, если они предусмотрены

Рассмотрим первый способ на примере шорткода [example].

function wpsnippets_custom_example_shortcode($atts, $content = null) {
    // Обработка атрибутов с дефолтами
    $atts = shortcode_atts(
        [
            'title' => 'Заголовок по умолчанию',
            'color' => 'blue'
        ],
        $atts,
        'example'
    );

    // Возвращаем кастомный HTML
    return '<h2 style="color:' . esc_attr($atts['color']) . '">' . esc_html($atts['title']) . '</h2>' . do_shortcode($content);
}

function wpsnippets_override_example_shortcode() {
    remove_shortcode('example');
    add_shortcode('example', 'wpsnippets_custom_example_shortcode');
}
add_action('init', 'wpsnippets_override_example_shortcode');

В этом примере мы сначала удаляем стандартный шорткод example, затем регистрируем новый с функцией wpsnippets_custom_example_shortcode, которая выводит заголовок с цветом из атрибутов.

Советы по изменению shortcode

  • Всегда используйте remove_shortcode() перед add_shortcode(), чтобы избежать конфликтов
  • Старайтесь сохранять совместимость с аргументами и контентом, если хотите, чтобы новый шорткод работал аналогично старому
  • Для сложных изменений лучше создать отдельный плагин, чтобы не потерять изменения при обновлении темы

Примеры плагинов для работы с shortcode и их интеграция

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

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

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

Как отладить и проверить удаление или изменение shortcode

После внесения изменений важно тщательно проверить их работу на сайте. Вот несколько рекомендаций по отладке:

  • Очистите кэш сайта и браузера — иногда старый вывод сохраняется в кэше
  • Используйте функцию do_shortcode() в шаблонах или постах для тестирования шорткодов
  • Проверьте наличие ошибок в журналах PHP и консоли браузера
  • Если шорткод не изменяется, попробуйте повысить приоритет хука init в функции add_action, например, add_action('init', 'wpsnippets_override_example_shortcode', 20);

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

Вставьте в файл шаблона или в редактор поста следующий код:

echo do_shortcode('[example title="Тестовый заголовок" color="red"]Содержимое[/example]');

Если вывод соответствует вашим изменениям, значит все работает корректно.

Заключение: почему важно контролировать шорткоды

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

Используйте описанные методы и примеры, чтобы эффективно работать с шорткодами на вашем сайте.

WooCommerce: как изменить статус заказа без повышения суммы платежа
23.04.2026
WooCommerce: как исключить повторную отправку письма при изменении статуса заказа
30.05.2026
WordPress: как удалить или изменить shortcode без плагинов
26.12.2025
WooCommerce: отключение отсроченного платежа при изменении заказа
20.04.2026
WooCommerce: как исключить повторную отправку письма при изменении статуса заказа
20.05.2026