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

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

Что такое шорткоды в WordPress и зачем они нужны

Шорткоды — это специальные теги в квадратных скобках, которые WordPress автоматически преобразует в определённый HTML или PHP-код при отображении страницы. Например, шорткод [gallery] выводит галерею изображений. Это позволяет пользователям без знаний программирования добавлять сложный контент.

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

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

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

Как создать свой собственный шорткод в WordPress

Создание шорткода — это добавление PHP-функции, которая возвращает HTML-код, и регистрация этой функции с помощью встроенной функции WordPress add_shortcode(). Рассмотрим пример, как создать простой шорткод для вывода приветственного сообщения.

function wpcourse_hello_shortcode($atts) {
    // Обработка атрибутов шорткода с значением по умолчанию
    $atts = shortcode_atts(array(
        'name' => 'Гость'
    ), $atts, 'hello');

    return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на сайт.</p>';
}
add_shortcode('hello', 'wpcourse_hello_shortcode');

Теперь, если добавить в запись [hello name="Иван"], на сайте отобразится: Привет, Иван! Добро пожаловать на сайт.

Обратите внимание на использование функции esc_html() для безопасности и shortcode_atts() для установки параметров по умолчанию.

Передача параметров в шорткод

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

function wpcourse_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'text' => 'Нажми меня',
        'url' => '#',
        'color' => 'blue'
    ), $atts, 'wpcourse_button');

    return '<a href="' . esc_url($atts['url']) . '" class="wpcourse-btn wpcourse-btn-' . esc_attr($atts['color']) . '">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpcourse_button', 'wpcourse_button_shortcode');

Использование: [wpcourse_button text="Перейти" url="https://wpcourse.ru" color="red"]

Для стилизации такой кнопки достаточно добавить CSS-классы в тему или плагин.

Продвинутые примеры: шорткод с вложенным контентом и условной логикой

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

function wpcourse_alert_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'type' => 'info' // info, warning, error
    ), $atts, 'alert');

    $type_class = 'wpcourse-alert-' . esc_attr($atts['type']);

    return '<div class="wpcourse-alert ' . $type_class . '">' . do_shortcode($content) . '</div>';
}
add_shortcode('alert', 'wpcourse_alert_shortcode');

Использование:

[alert type="warning"]Внимание! Проверьте настройки.[/alert]

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

Обработка вложенных шорткодов

Если внутри контента есть другие шорткоды, используйте функцию do_shortcode(), как показано выше, чтобы они корректно обработались.

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

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

  • Безопасность: всегда экранируйте входящие данные и вывод с помощью esc_html(), esc_url() и подобных функций.
  • Производительность: не используйте тяжелые запросы в шорткодах, которые вызываются часто. Если нужен сложный запрос, используйте кеширование.
  • Согласованность: давайте шорткодам и функциям уникальные имена, например, с префиксом wpcourse_, чтобы избежать конфликтов с другими плагинами.

Как зарегистрировать шорткод в своем плагине или в functions.php

Лучше всего добавлять шорткоды в плагин или в дочернюю тему, чтобы не потерять изменения при обновлении основной темы. Например, в файле functions.php дочерней темы:

if (!function_exists('wpcourse_hello_shortcode')) {
    function wpcourse_hello_shortcode($atts) {
        $atts = shortcode_atts(array('name' => 'Гость'), $atts, 'hello');
        return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
    }
    add_shortcode('hello', 'wpcourse_hello_shortcode');
}

Или создайте отдельный плагин с аналогичным кодом.

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

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

  • Shortcodes Ultimate — набор из более чем 50 готовых шорткодов для контента, кнопок, галерей и многого другого.
  • WP Shortcode by MyThemeShop — удобный плагин с многочисленными шорткодами и визуальным редактором.
  • Custom Content Shortcode — позволяет создавать свои шорткоды с кастомным содержимым и выводом.

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

Вывод

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

Как создать и использовать шорткоды в WordPress: подробное руководство
08.11.2025
Как удалить старые псевдоверсии постов в WordPress: эффективные методы и примеры
13.04.2026
Как добавить дополнительное поле в форму регистрации WordPress с помощью кода
06.01.2026
Как изменить структуру ссылок в WordPress без плагинов
03.03.2026
Как избежать конфликтов между плагинами в WordPress: диагностика и решение
13.06.2026

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас