Как создать динамический шорткод с параметрами в WordPress

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

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

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

Динамический шорткод принимает параметры в виде атрибутов, например, [hello name="Иван" color="red"], и выводит персонализированный контент. Такой подход позволяет многократно использовать один шорткод с разными настройками.

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

  • Вывод отзывов с разной сортировкой или количеством;
  • Показывать разные галереи в зависимости от категории;
  • Встраивать видео с параметрами воспроизведения;
  • Создавать кастомные кнопки с разным стилем и ссылками.

Создание динамического шорткода с параметрами: пошаговое руководство

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

Шаг 1. Регистрируем шорткод

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpvip_dynamic_shortcode($atts) {
    // Задаём значения параметров по умолчанию
    $args = shortcode_atts(array(
        'name' => 'Гость',
        'color' => 'black',
        'size' => '16px'
    ), $atts);

    // Формируем HTML с учетом параметров
    $output = '<div style="color: ' . esc_attr($args['color']) . '; font-size: ' . esc_attr($args['size']) . ';">';
    $output .= 'Привет, ' . esc_html($args['name']) . '! Добро пожаловать на сайт.';
    $output .= '</div>';

    return $output;
}
add_shortcode('wpvip_hello', 'wpvip_dynamic_shortcode');

Здесь мы создали шорткод [wpvip_hello], который принимает параметры name, color и size, и выводит приветствие с заданными стилями.

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

Чтобы вывести приветствие, используйте в контенте:

[wpvip_hello name="Анна" color="#0073aa" size="20px"]

В результате на странице появится текст «Привет, Анна! Добро пожаловать на сайт.» с указанным цветом и размером шрифта.

Расширение функционала шорткода: примеры с дополнительными параметрами

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

Пример 1. Шорткод с условным выводом

Добавим параметр show_greeting, который будет управлять показом приветствия:

function wpvip_conditional_shortcode($atts) {
    $args = shortcode_atts(array(
        'name' => 'Гость',
        'show_greeting' => 'yes'
    ), $atts);

    if ($args['show_greeting'] === 'yes') {
        return '<p>Здравствуйте, ' . esc_html($args['name']) . '!</p>';
    } else {
        return '<p>Добро пожаловать на сайт.</p>';
    }
}
add_shortcode('wpvip_conditional', 'wpvip_conditional_shortcode');

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

[wpvip_conditional name="Игорь" show_greeting="no"]

Будет выведено: «Добро пожаловать на сайт.»

Пример 2. Шорткод с вложенным контентом

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

function wpvip_wrapper_shortcode($atts, $content = null) {
    $args = shortcode_atts(array(
        'class' => 'wpvip-wrapper'
    ), $atts);

    return '<div class="' . esc_attr($args['class']) . '">' . do_shortcode($content) . '</div>';
}
add_shortcode('wpvip_wrapper', 'wpvip_wrapper_shortcode');

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

[wpvip_wrapper class="custom-class"]
    Здесь может быть любой текст или другие шорткоды.
[/wpvip_wrapper]

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

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

  • Shortcodes Ultimate — популярный плагин с множеством готовых шорткодов и визуальным редактором;
  • Clearfy Pro — оптимизирует WordPress и содержит расширенные настройки для шорткодов и кастомизации;
  • WPRemark — позволяет создавать отзывы и рейтинги с помощью шорткодов;
  • ABC Pagination — расширяет навигацию и подгрузку контента через шорткоды.

Практические советы и рекомендации по созданию шорткодов

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

2. Обязательно экранируйте вывод с помощью esc_html() и esc_attr(). Это защитит сайт от XSS-уязвимостей.

3. Помните про производительность. Старайтесь не делать тяжелых запросов к базе в шорткодах — кешируйте результаты при необходимости.

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

Заключение

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

Если хотите упростить управление шорткодами и другими инструментами, обратите внимание на плагины с расширенным функционалом, например, Clearfy Pro или WPRemark.

Как защитить WordPress от взлома: лучшие методы и инструменты
12.11.2025
Как создать динамический виджет в WordPress
15.11.2025
Как создать эффективный кеш в WordPress для быстрой загрузки
29.12.2025
Автоматизация обработки заказов в WordPress с помощью WPRemark
13.02.2026
Как использовать WPRemark для управления отзывами на WordPress
10.02.2026