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

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

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

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

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

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

Как создать простой шорткод: базовый пример

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

Рассмотрим пример создания шорткода, который выводит приветствие:

function wprobot_greeting_shortcode() {
    return 'Приветствую на сайте wprobot.ru!';
}
add_shortcode('wprobot_greeting', 'wprobot_greeting_shortcode');

Теперь в любом месте контента можно написать [wprobot_greeting] — и на сайте отобразится текст приветствия.

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

Шорткод с параметрами: как сделать шорткод гибким

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

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

    return '<a href="'.esc_url($atts['url']).'" style="background-color:'.esc_attr($atts['color']).';padding:10px 20px;color:#fff;text-decoration:none;border-radius:5px;">'.esc_html($atts['text']).'</a>';
}
add_shortcode('wprobot_button', 'wprobot_button_shortcode');

Использовать такой шорткод можно так:

[wprobot_button text="Купить сейчас" url="https://wprobot.ru/product" color="green"]

Это создаст кнопку с зелёным фоном и текстом "Купить сейчас", ведущую на указанный URL.

Пояснения к коду

  • shortcode_atts() — функция для объединения переданных параметров с дефолтными значениями;
  • Функции esc_url(), esc_attr(), esc_html() — для безопасности вывода данных;
  • Возвращается строка с HTML-кодом кнопки.

Шорткод с вложенным контентом

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

[wprobot_highlight color="yellow"]Текст для выделения[/wprobot_highlight]

Такой шорткод можно реализовать так:

function wprobot_highlight_shortcode($atts, $content = null) {
    $atts = shortcode_atts(
        array('color' => 'yellow'), $atts, 'wprobot_highlight'
    );
    $color = esc_attr($atts['color']);
    $content = $content ? $content : '';
    return '<span style="background-color:'. $color .'; padding:2px 4px; border-radius:3px;">'. do_shortcode($content) .'</span>';
}
add_shortcode('wprobot_highlight', 'wprobot_highlight_shortcode');

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

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

Шорткоды удобно использовать для интеграции API и внешних сервисов. Например, вывод последних твитов из аккаунта Twitter, курсов валют, погоды и т.д.

Рассмотрим пример шорткода, который выводит текущее время сервера:

function wprobot_server_time_shortcode() {
    return 'Текущее время сервера: '. date('H:i:s');
}
add_shortcode('wprobot_servertime', 'wprobot_server_time_shortcode');

Вставьте в контент [wprobot_servertime] — и посетители увидят актуальное время.

Для более сложных интеграций необходимо обращаться к API через wp_remote_get() или другие HTTP функции WordPress, обрабатывать данные и выводить их через шорткод.

Как подключать шорткод в PHP-шаблонах темы

Иногда нужно вывести шорткод не в содержимом записи, а прямо в PHP-файле темы. Для этого используется функция do_shortcode():

echo do_shortcode('[wprobot_button text="Подробнее" url="https://wprobot.ru/about" color="red"]');

Это позволяет гибко использовать шорткоды в любых частях темы.

Советы по организации и безопасности шорткодов

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

  • Используйте уникальные префиксы в названиях функций и шорткодов, чтобы избежать конфликтов.
  • Всегда фильтруйте и экранируйте входящие данные и вывод (например, esc_html, esc_attr, esc_url).
  • Не выполняйте в шорткодах тяжёлые операции — кешируйте результаты, если необходимо.
  • Проверяйте, используется ли контент, и обрабатывайте вложенные шорткоды с помощью do_shortcode().

Заключение

Создание собственных шорткодов — обязательный навык для разработчика WordPress, который позволяет сделать сайт более гибким и удобным для пользователей. В этой статье мы рассмотрели базовые и продвинутые приёмы создания шорткодов с примерами кода и рекомендациями по безопасности. Используйте эти знания для разработки качественного контента и функционала на вашем сайте wprobot.ru.

Как настроить robots.txt в WordPress для закрытия служебных страниц и лишних обходов
23.09.2026
Как создать автоматические отзывы в WordPress с помощью плагинов
27.09.2026
Автоматическое удаление старых изображений в WordPress
17.09.2026
Как удалить дубли страниц пагинации в WordPress и не потерять трафик
06.10.2026
Автоматический импорт данных из Excel в WordPress
01.10.2026