Шорткоды в WordPress — это мощный инструмент, который позволяет легко вставлять сложные элементы и функционал прямо в записи и страницы без необходимости писать длинные куски кода каждый раз. В этой статье мы подробно разберём, как создать собственный шорткод, чтобы расширить возможности вашего сайта на WordPress.
Что такое шорткоды в WordPress и зачем их использовать
Шорткод — это короткая метка в квадратных скобках, например [wpshab_example], которая заменяется на определённый функционал или контент при отображении страницы. Это позволяет пользователям без знаний программирования добавлять динамические элементы в контент.
Типичные применения шорткодов включают вставку галерей, форм, кастомных виджетов, кнопок и других элементов, которые сложно или неудобно вставлять вручную.
Создание собственного шорткода полезно, если стандартных функций WordPress или плагинов недостаточно, или вы хотите реализовать уникальный функционал под свои задачи.
Создание базового шорткода: пример и объяснение
Для создания собственного шорткода в WordPress нужно зарегистрировать его с помощью функции add_shortcode. Рассмотрим простой пример, который выводит приветствие с именем пользователя.
function wpshab_greeting_shortcode($atts) {
$atts = shortcode_atts(array(
'name' => 'Гость'
), $atts, 'wpshab_greeting');
return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wpshab.ru.</p>';
}
add_shortcode('wpshab_greeting', 'wpshab_greeting_shortcode');В этом коде мы создали функцию wpshab_greeting_shortcode, которая принимает атрибуты, устанавливает значение по умолчанию для name и возвращает HTML с приветствием. Затем мы регистрируем шорткод [wpshab_greeting], который вызывает эту функцию.
Пример использования на странице или в записи: [wpshab_greeting name="Алексей"]
Обработка атрибутов и защита данных в шорткодах
Очень важно корректно обрабатывать атрибуты и данные, чтобы избежать уязвимостей, например XSS-атак. В примере выше используется функция esc_html, которая экранирует HTML-символы, предотвращая исполнение вредоносного кода.
Помимо esc_html, для вывода безопасного HTML можно использовать функции wp_kses с указанием разрешённых тегов и атрибутов.
Также стоит учитывать, что в шорткодах нельзя выполнять тяжелые операции, которые могут замедлить загрузку страниц, иначе пользовательский опыт ухудшится.
Создание сложного шорткода с параметрами и вложенным функционалом
Рассмотрим пример шорткода, который выводит список последних записей с возможностью настройки количества и категории через атрибуты.
function wpshab_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5,
'category' => ''
), $atts, 'wpshab_latest_posts');
$args = array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish'
);
if (!empty($atts['category'])) {
$args['category_name'] = sanitize_text_field($atts['category']);
}
$query = new WP_Query($args);
if (!$query->have_posts()) {
return '<p>Записей не найдено.</p>';
}
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . esc_url(get_permalink()) . '">' . esc_html(get_the_title()) . '</a></li>';
}
$output .= '</ul>';
wp_reset_postdata();
return $output;
}
add_shortcode('wpshab_latest_posts', 'wpshab_latest_posts_shortcode');Использование этого шорткода: [wpshab_latest_posts count="3" category="wordpress"] выведет 3 последние записи из категории "wordpress".
Популярные плагины для работы с шорткодами и их расширения
Если вы хотите работать с шорткодами более удобно, можно использовать плагины:
- Shortcodes Ultimate — набор из более 50 готовых шорткодов для различных целей: кнопки, табы, галереи и многое другое.
- WP Shortcode — простой плагин с базовым набором шорткодов, легко расширяемый.
- Custom Content Shortcode — позволяет создавать шорткоды с условной логикой и динамическим контентом.
Эти плагины помогут ускорить разработку и сделают сайт более динамичным без написания собственного кода, но знание базового создания шорткодов всегда пригодится.
Рекомендации по организации и безопасности собственных шорткодов на wpshab.ru
Чтобы ваши шорткоды были удобными и безопасными, придерживайтесь следующих рекомендаций:
- Используйте префиксы функций и шорткодов, например
wpshab_, чтобы избежать конфликтов с другими плагинами. - Обязательно фильтруйте и экранируйте все входные данные с помощью функций WordPress (
esc_html,sanitize_text_field,esc_url). - Не выводите необработанные данные напрямую.
- Если шорткод выполняет запросы к базе, оптимизируйте их и не перегружайте сервер.
- Документируйте свои шорткоды: какие атрибуты поддерживаются, какой результат выводится.
Следуя этим рекомендациям, вы сможете создавать надёжные и понятные шорткоды для вашего сайта на WordPress.