Шорткоды в WordPress — это мощный инструмент, который позволяет добавлять динамический контент в записи, страницы и виджеты без необходимости писать сложный код каждый раз. Если вы хотите расширить функциональность сайта и сделать её удобной для контент-менеджеров и редакторов, создание собственных шорткодов — отличный способ. В этой статье расскажем, как на wpupgrade.ru создать свои шорткоды, приведём примеры кода и разберём нюансы безопасности и производительности.
Что такое шорткоды в WordPress и зачем они нужны
Шорткод — это специальный тег в квадратных скобках, например [example_shortcode], который WordPress заменяет на определённый контент или функциональность во время вывода страницы. Они позволяют:
- Добавлять повторяющиеся элементы без дублирования кода;
- Интегрировать динамические данные (например, последние записи, формы, галереи);
- Обеспечивать удобство для пользователей, не знакомых с программированием.
Использование собственных шорткодов помогает создавать индивидуальные решения под задачи вашего сайта.
Как зарегистрировать собственный шорткод в WordPress: базовый пример
Создание функции обратного вызова для шорткода
Для начала нужно написать функцию, которая будет генерировать нужный контент. Например, создадим простой шорткод, который выводит приветствие с именем пользователя:
function wpupgrade_greeting_shortcode($atts) {
$atts = shortcode_atts(
array('name' => 'Гость'),
$atts,
'wpupgrade_greeting'
);
return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на сайт.</p>';
}Регистрация шорткода в WordPress
Чтобы WordPress распознавал ваш шорткод, нужно зарегистрировать его с помощью функции add_shortcode:
add_shortcode('wpupgrade_greeting', 'wpupgrade_greeting_shortcode');Теперь, если в записи добавить [wpupgrade_greeting name="Алексей"], на сайте отобразится текст "Привет, Алексей! Добро пожаловать на сайт."
Использование параметров и атрибутов в шорткодах
Очень часто шорткодам нужны параметры, чтобы быть более гибкими. В примере выше мы уже использовали атрибут name. Вот ещё несколько советов:
- Используйте
shortcode_attsдля установки значений по умолчанию и удобной обработки входящих атрибутов. - Обязательно экранируйте вывод с помощью
esc_html,esc_attrили других функций для предотвращения XSS-уязвимостей. - Можно передавать числовые, текстовые и булевы значения, а внутри функции приводить их к нужному типу.
Например, сделаем шорткод для вывода кнопки с настраиваемым текстом и ссылкой:
function wpupgrade_button_shortcode($atts) {
$atts = shortcode_atts(
array(
'text' => 'Нажми меня',
'url' => '#'
),
$atts,
'wpupgrade_button'
);
$text = esc_html($atts['text']);
$url = esc_url($atts['url']);
return '<a href="' . $url . '" class="wpupgrade-button">' . $text . '</a>';
}
add_shortcode('wpupgrade_button', 'wpupgrade_button_shortcode');Вызов [wpupgrade_button text="Перейти" url="https://wpupgrade.ru"] выведет аккуратную ссылку-кнопку.
Передача содержимого между тегами шорткода: шорткоды с контентом
Шорткоды могут иметь закрывающий тег и принимать вложенный контент. Например:
[wpupgrade_box]Текст внутри блока[/wpupgrade_box]Чтобы это реализовать, функция должна принимать второй параметр — $content:
function wpupgrade_box_shortcode($atts, $content = null) {
return '<div class="wpupgrade-box">' . do_shortcode($content) . '</div>';
}
add_shortcode('wpupgrade_box', 'wpupgrade_box_shortcode');Таким образом, можно создавать контейнеры с кастомным оформлением, которые удобно использовать в редакторе.
Советы по безопасности и производительности при работе с шорткодами
При создании шорткодов важно учитывать несколько моментов:
- Экранирование данных. Всегда фильтруйте входящие атрибуты и экранируйте вывод, чтобы избежать XSS и других уязвимостей.
- Минимизация запросов к базе. Если шорткод выполняет запросы к базе, используйте кэширование, чтобы не нагружать сервер.
- Проверка прав доступа. Если шорткод выводит чувствительную информацию, проверяйте, авторизован ли пользователь и имеет ли он необходимые права.
Например, добавим в шорткод проверку прав:
function wpupgrade_private_message_shortcode($atts, $content = null) {
if (!is_user_logged_in()) {
return '<p>Только для зарегистрированных пользователей.</p>';
}
return '<div class="private-message">' . do_shortcode($content) . '</div>';
}
add_shortcode('wpupgrade_private', 'wpupgrade_private_message_shortcode');Полезные плагины для работы с шорткодами
Если не хочется писать шорткоды вручную, можно использовать готовые плагины:
- Shortcoder — позволяет создавать собственные шорткоды через удобный интерфейс в админке без программирования.
- Code Snippets — удобно добавлять и управлять пользовательским PHP-кодом, включая шорткоды.
- Shortcode UI — добавляет визуальный интерфейс для создания и редактирования шорткодов.
Эти инструменты помогут быстрее внедрять новые элементы на сайт, особенно если вы не хотите править темы или плагины напрямую.
Итоговые рекомендации для создания шорткодов на wpupgrade.ru
Чтобы создавать эффективные и стабильные шорткоды, придерживайтесь следующих правил:
- Придерживайтесь единого префикса (например,
wpupgrade_) для всех функций и шорткодов, чтобы избежать конфликтов. - Документируйте код шорткодов, чтобы потом проще было поддерживать и расширять функциональность.
- Тестируйте шорткоды в разных условиях (разные темы, плагины) и на разных устройствах.
- Используйте стандартные функции WordPress для безопасности и фильтрации данных.
Собственные шорткоды — это удобный и гибкий способ добавить уникальный функционал на сайт без сложного программирования и постоянного правления кода. Начните с простых примеров, описанных в этой статье, и постепенно усложняйте задачи по мере необходимости.