Шорткоды в WordPress — мощный инструмент, позволяющий добавлять функциональные блоки в записи, страницы и виджеты без необходимости писать сложный код вручную каждый раз. Если стандартных шорткодов вам недостаточно, вы можете создать собственные, которые будут выполнять конкретные задачи, необходимые именно вашему сайту. В этой статье подробно разберём, как создать собственный шорткод в WordPress на примере, а также рассмотрим лучшие практики и распространённые ошибки.
Что такое шорткод в WordPress и зачем создавать собственный
Шорткод — это особая метка в квадратных скобках, которую WordPress автоматически заменяет на определённый функциональный контент при выводе страницы. Например, стандартный шорткод [gallery] вставляет галерею изображений. Создавая собственные шорткоды, вы можете расширить возможности сайта, добавляя интерактивные элементы, динамический контент, формы и многое другое.
Преимущества создания собственных шорткодов:
- Удобство использования — достаточно вставить короткую метку;
- Повторное использование кода без дублирования;
- Изоляция логики и визуального вывода;
- Возможность параметризации и настройки поведения.
Именно поэтому разработчики и владельцы сайтов часто создают свои шорткоды для специфических задач.
Как зарегистрировать собственный шорткод: базовый пример
Для регистрации шорткода используется функция add_shortcode(). Она принимает два параметра: имя шорткода и функцию, которая будет возвращать HTML или другой вывод.
Пример создания шорткода [wplinks_hello], который выводит приветствие:
function wplinks_hello_shortcode() {
return '<p>Привет от WPLinks!</p>';
}
add_shortcode('wplinks_hello', 'wplinks_hello_shortcode');Этот код достаточно добавить в файл functions.php вашей темы или в отдельный плагин. После этого в любом месте сайта появится возможность вставить [wplinks_hello], и пользователи увидят текст "Привет от WPLinks!".
Где размещать код шорткодов
Лучший вариант — создавать отдельный плагин для своих шорткодов. Это позволит не потерять их при смене темы и поддерживать код отдельно. Если вы пока не готовы к плагинам, временно добавляйте код в functions.php активной темы. Но помните, что при обновлении темы эти изменения могут пропасть.
Параметры шорткода: как сделать шорткод динамичным
Очень часто шорткоды должны принимать параметры для большей гибкости. Например, шорткод может принимать атрибуты и изменять вывод в зависимости от них.
Рассмотрим пример шорткода, который выводит ссылку с настраиваемым адресом и текстом:
function wplinks_custom_link_shortcode($atts) {
// Задаём значения по умолчанию
$atts = shortcode_atts(
array(
'url' => 'https://wplinks.ru',
'text' => 'Перейти на WPLinks'
), $atts, 'wplinks_link'
);
// Возвращаем HTML ссылки
return '<a href="' . esc_url($atts['url']) . '" target="_blank" rel="noopener noreferrer">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wplinks_link', 'wplinks_custom_link_shortcode');Использование шорткода с параметрами выглядит так:
[wplinks_link url="https://example.com" text="Посетить Example"]
В результате на странице появится ссылка с заданным адресом и текстом. Это простой, но мощный способ создавать настраиваемые элементы.
Обработка вложенного контента в шорткодах
Иногда нужно, чтобы шорткод обрабатывал не только атрибуты, но и контент, заключённый между тегами шорткода. Например, выделить текст или обернуть его в стилизованный блок.
Для этого функция шорткода принимает второй параметр — вложенный контент $content. Важно использовать функцию do_shortcode(), если внутри вложенного контента могут быть другие шорткоды.
function wplinks_highlight_shortcode($atts, $content = null) {
return '<span style="background-color:yellow;">' . do_shortcode($content) . '</span>';
}
add_shortcode('wplinks_highlight', 'wplinks_highlight_shortcode');Использование:
[wplinks_highlight]Этот текст будет выделен желтым фоном.[/wplinks_highlight]
Такой подход позволяет создавать более сложные и интерактивные блоки контента.
Практические советы: безопасность и производительность шорткодов
Создавая шорткоды, важно помнить про безопасность. Всегда экранируйте вывод с помощью esc_html(), esc_url() и других функций WordPress для предотвращения XSS-атак.
Не стоит выполнять тяжелые операции внутри шорткодов, чтобы не замедлять загрузку страниц. Если нужна сложная логика, лучше использовать кэширование или AJAX-запросы.
Также избегайте вывода данных напрямую — возвращайте строки, а не выводите с помощью echo. Это обеспечивает корректную работу с буфером вывода WordPress.
Полезные плагины для работы с шорткодами в WordPress
Если вы не хотите писать код с нуля, можно воспользоваться готовыми плагинами, которые расширяют возможности шорткодов:
- Shortcodes Ultimate — набор из более чем 50 готовых шорткодов с визуальным редактором;
- WP Shortcode by MyThemeShop — простой и лёгкий плагин с часто используемыми элементами;
- Custom Content Shortcode — позволяет создавать собственные шорткоды для контента без программирования.
Однако для уникальных задач лучше создавать собственные шорткоды, чтобы не перегружать сайт лишним функционалом.
Заключение
Создание собственных шорткодов в WordPress — обязательный навык для разработчика и продвинутого пользователя. Это позволяет значительно расширить функциональность сайта, сделать контент более интерактивным и удобным для управления. В статье приведены базовые и продвинутые примеры, которые можно сразу использовать на практике.
Начинайте с простых шорткодов, постепенно добавляя параметры и обработку контента. Не забывайте про безопасность и производительность. И тогда шорткоды станут вашим надежным инструментом для создания мощных WordPress-сайтов.