Шорткоды — это мощный инструмент WordPress, который позволяет добавлять динамический контент в записи, страницы и виджеты без необходимости писать сложный код каждый раз. Если вы хотите расширить функциональность вашего сайта, создание собственного шорткода — отличный способ это сделать.
Что такое шорткод и зачем он нужен в WordPress
Шорткод — это специальный тег в квадратных скобках, который WordPress автоматически заменяет определённым содержимым или функционалом. Например, [gallery] выводит галерею изображений, а [audio] вставляет аудиоплеер. Создавая свои шорткоды, вы можете быстро и удобно вставлять повторяющиеся элементы, формы, кастомный вывод данных и многое другое.
Это особенно полезно, если вы хотите предоставить клиентам или редакторам возможность вставлять сложные элементы без знаний программирования.
Основы создания шорткода в WordPress
Создание шорткода сводится к регистрации функции, которая возвращает нужный HTML или данные, и регистрации самого шорткода через функцию add_shortcode(). Рассмотрим базовый пример.
function wpbuy_custom_shortcode_example($atts) {
$atts = shortcode_atts(array(
'text' => 'Привет, мир!'
), $atts, 'wpbuy_hello');
return '<p>' . esc_html($atts['text']) . '</p>';
}
add_shortcode('wpbuy_hello', 'wpbuy_custom_shortcode_example');Здесь мы создали шорткод [wpbuy_hello text="Ваш текст"], который выводит параграф с заданным текстом. Если параметр не передан — выводится «Привет, мир!».
Как использовать параметры в шорткодах: атрибуты и их обработка
Для удобства и гибкости шорткоды могут принимать параметры (атрибуты). В функции используется shortcode_atts() для объединения переданных атрибутов с дефолтными значениями.
Например, добавим параметр color, чтобы менять цвет текста:
function wpbuy_custom_shortcode_color($atts) {
$atts = shortcode_atts(array(
'text' => 'Привет, мир!',
'color' => '#000000'
), $atts, 'wpbuy_color_text');
return '<p style="color:' . esc_attr($atts['color']) . ';">' . esc_html($atts['text']) . '</p>';
}
add_shortcode('wpbuy_color_text', 'wpbuy_custom_shortcode_color');Теперь в редакторе можно использовать: [wpbuy_color_text text="Текст" color="#ff0000"], и текст будет красным.
Пример сложного шорткода с выводом данных из базы
Допустим, нужно вывести последние 3 записи из блога с кастомным шорткодом. Это частая задача для разработчиков, позволяющая быстро вставлять свежий контент в любую часть сайта.
function wpbuy_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 3
), $atts, 'wpbuy_latest_posts');
$query = new WP_Query(array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish'
));
if (!$query->have_posts()) {
return '<p>Записей не найдено.</p>';
}
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('wpbuy_latest_posts', 'wpbuy_latest_posts_shortcode');Шорткод [wpbuy_latest_posts count="5"] выведет 5 последних опубликованных записей в виде списка с ссылками.
Лучшие плагины для создания шорткодов без кода
Если вы не хотите писать код, то есть плагины, которые облегчают создание шорткодов:
- Shortcodes Ultimate — один из самых популярных плагинов с набором готовых шорткодов и визуальным редактором.
- WP Shortcode — простой набор полезных шорткодов для форматирования контента.
- Custom Content Shortcode — позволяет создавать собственные шорткоды через интерфейс и вставлять произвольный HTML или PHP.
Использование этих инструментов ускоряет разработку и даёт возможность даже новичкам легко добавлять сложный функционал.
Советы по безопасности при создании шорткодов
Важно помнить, что шорткод — это код, который выводит данные на страницу, поэтому нужно внимательно следить за безопасностью:
- Используйте
esc_html(),esc_attr()для вывода текста. - Не выполняйте напрямую пользовательский ввод без фильтрации.
- Если используете пользовательский ввод для запросов, обязательно применяйте функции подготовки запросов.
Например, в примерах выше мы использовали esc_html() и esc_attr() для защиты.
Как подключить шорткод в теме или плагине на wpbuy.ru
Чтобы использовать шорткод на сайте, добавьте код в файл functions.php вашей темы или в отдельный плагин. Рекомендуется создавать дочернюю тему или собственный плагин, чтобы изменения не потерялись при обновлениях.
Пример создания простого плагина:
/*
Plugin Name: WPBuy Custom Shortcodes
Description: Набор кастомных шорткодов для сайта wpbuy.ru
Version: 1.0
Author: WPBuy
*/
// Здесь добавьте функции шорткодов
После активации плагина шорткоды будут доступны на сайте.
Итог: когда и зачем создавать собственные шорткоды
Создание собственных шорткодов позволяет автоматизировать вывод повторяющегося контента, улучшить удобство редактирования и расширить возможности сайта без необходимости постоянно вставлять HTML или PHP код вручную.
Для разработчиков это удобный инструмент, позволяющий быстро внедрять кастомный функционал и предоставлять гибкие решения клиентам.