Шорткоды — это мощный инструмент 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.