Шорткоды в 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.