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

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

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

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

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

Пример стандартного шорткода: [gallery]. Чтобы создать такой же, но с вашей логикой, нужно написать функцию и зарегистрировать её.

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

Регистрация шорткода происходит с помощью функции add_shortcode(). Она принимает два параметра: тег шорткода и функцию-обработчик, которая возвращает HTML или другой вывод.

Рассмотрим простой пример. Создадим шорткод [wpbloger_hello], который будет выводить приветствие.

function wpbloger_hello_shortcode() {
    return '<p>Привет от wpbloger.ru!</p>';
}
add_shortcode('wpbloger_hello', 'wpbloger_hello_shortcode');

Этот код можно добавить в файл functions.php вашей темы или в собственный плагин. После этого в любом месте контента на сайте достаточно написать [wpbloger_hello], и вы увидите приветствие.

Советы по написанию функций для шорткодов

Функция должна всегда возвращать, а не выводить содержимое. Это важно, чтобы WordPress корректно вставлял вывод в нужное место. Если использовать echo, то могут возникнуть проблемы с формированием страницы.

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

Шорткод с параметрами — как передавать аргументы

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

Параметры передаются в виде атрибутов, например: [wpbloger_greeting name="Иван" color="#ff0000"].

Рассмотрим пример функции с параметрами:

function wpbloger_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
            'color' => '#000000',
        ), $atts, 'wpbloger_greeting'
    );

    return '<p style="color:' . esc_attr($atts['color']) . ';">Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wpbloger.ru.</p>';
}
add_shortcode('wpbloger_greeting', 'wpbloger_greeting_shortcode');

Здесь мы используем функцию shortcode_atts() для установки значений по умолчанию и защиту от ошибок. Функции esc_attr() и esc_html() обеспечивают безопасность вывода.

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

1. Вывод текущей даты в нужном формате

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

function wpbloger_current_date_shortcode() {
    return date('d.m.Y');
}
add_shortcode('wpbloger_date', 'wpbloger_current_date_shortcode');

Используйте [wpbloger_date] в тексте, чтобы автоматически вставлять дату.

2. Вставка кнопки с кастомным текстом и ссылкой

Создадим шорткод для кнопки, где можно менять текст и URL:

function wpbloger_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'text' => 'Нажми меня',
        'url' => '#',
        'color' => '#0085ba',
    ), $atts, 'wpbloger_button');

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

Пример использования: [wpbloger_button text="Перейти на wpbloger.ru" url="https://wpbloger.ru" color="#ff6600"]

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

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

  • Кешируйте результаты, если данные не меняются часто.
  • Минимизируйте количество запросов к базе данных.
  • Используйте транзиенты WordPress для временного хранения данных.
  • Проверяйте, что ваши функции не вызываются лишний раз.

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

Заключение по созданию собственных шорткодов

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

Как создать собственный шорткод в WordPress: пошаговое руководство
02.11.2025
Удалить кэш в WordPress: практические способы и код для очистки
10.11.2025