Шорткоды в WordPress позволяют добавлять на страницы и в записи кастомный функционал без необходимости редактировать шаблоны. Это мощный инструмент, который помогает расширять возможности сайта, делая контент более динамичным и удобным для пользователей. В этой статье мы подробно рассмотрим, как создать свой собственный шорткод, какие нюансы при этом нужно учитывать и приведём примеры полезных шорткодов с кодом.
Что такое шорткод и зачем он нужен в WordPress
Шорткод — это специальная метка в квадратных скобках, например [my_shortcode], которую WordPress распознаёт и заменяет на определённый контент или функционал. Это позволяет:
- Добавлять интерактивные элементы в записи и страницы без знаний HTML и PHP;
- Повторно использовать один и тот же блок кода в разных местах сайта;
- Сокращать время разработки и облегчать поддержку сайта.
Шорткоды могут генерировать простой текст, выводить списки, формы, галереи, или даже интегрировать сложный функционал — всё зависит от вашей задачи.
Как зарегистрировать шорткод в WordPress
Для создания шорткода нужно зарегистрировать функцию обратного вызова (callback), которая будет возвращать нужный HTML или другой вывод. Делается это с помощью функции add_shortcode(). Рассмотрим базовый пример.
function wpnews_simple_greeting_shortcode() {
return '<p>Привет! Это мой первый шорткод.</p>';
}
add_shortcode('wpnews_greeting', 'wpnews_simple_greeting_shortcode');Теперь в редакторе WordPress вы можете написать [wpnews_greeting], и на сайте отобразится приветственное сообщение.
Объяснение кода регистрации шорткода
Функция wpnews_simple_greeting_shortcode возвращает HTML-строку, которая и будет отображена на месте шорткода. При регистрации через add_shortcode() первым параметром указывается имя шорткода, вторым — функция, которая генерирует контент.
Использование атрибутов в шорткодах
Часто требуется, чтобы шорткод принимал параметры, например, для вывода разных данных в зависимости от атрибутов. В примере ниже создадим шорткод, который выводит приветствие с именем пользователя.
function wpnews_personal_greeting_shortcode($atts) {
$atts = shortcode_atts(
array(
'name' => 'гость',
), $atts, 'wpnews_personal_greeting'
);
return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('wpnews_personal_greeting', 'wpnews_personal_greeting_shortcode');Теперь в редакторе можно написать [wpnews_personal_greeting name="Алексей"], и вы увидите на сайте: "Привет, Алексей!".
Пояснения по работе с атрибутами
Функция shortcode_atts() задаёт значения по умолчанию и объединяет их с переданными пользователем. Это удобно для обработки опциональных параметров.
Пример сложного шорткода: вывод списка последних записей
Рассмотрим практическую задачу — создать шорткод, который выводит список последних записей блога с заголовками и ссылками. Это часто нужно для удобства навигации или создания кастомных страниц.
function wpnews_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5,
'category' => '',
), $atts, 'wpnews_latest_posts');
$query_args = array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish',
);
if (!empty($atts['category'])) {
$query_args['category_name'] = sanitize_text_field($atts['category']);
}
$query = new WP_Query($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>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('wpnews_latest_posts', 'wpnews_latest_posts_shortcode');Используйте в записи [wpnews_latest_posts count="3" category="novosti"] для вывода трёх последних постов из категории "novosti".
Подробности реализации
Мы создаём объект WP_Query с параметрами, которые задаются через атрибуты шорткода. Это позволяет гибко настраивать вывод. В цикле формируем HTML-список с ссылками на записи.
Как избежать ошибок и повысить безопасность шорткодов
При создании шорткодов важно соблюдать несколько правил для устойчивости и безопасности:
- Используйте функции
esc_html()иesc_url()для экранирования вывода; - Проверяйте и фильтруйте входящие данные через
shortcode_atts()и функции безопасности, напримерsanitize_text_field(); - Избегайте выполнения нежелательных запросов в цикле, оптимизируйте запросы к базе;
- При необходимости используйте кэширование результатов при дорогих вычислениях.
Так ваш шорткод не только будет работать корректно, но и не создаст угроз безопасности для сайта.
Популярные плагины для работы с шорткодами
Если не хочется писать шорткоды самостоятельно, можно использовать готовые решения. Вот несколько популярных плагинов:
- Shortcodes Ultimate — большой набор готовых шорткодов для кнопок, табов, слайдеров и пр.;
- WP Shortcode by MyThemeShop — простой плагин с набором базовых шорткодов для форматирования контента;
- Custom Shortcodes — позволяет создавать собственные шорткоды через админку без программирования.
Однако, написание собственных шорткодов даёт максимальную гибкость и позволяет реализовать именно тот функционал, который нужен вашему проекту.
Заключение: советы для разработчиков шорткодов
Создание шорткодов — это один из основных способов расширить возможности WordPress без изменения кода темы. Важно:
- Писать чистый, читаемый и безопасный код;
- Документировать свои функции и использовать префиксы (например,
wpnews_) для избежания конфликтов; - Тестировать шорткоды на разных страницах и с разными параметрами;
- Поддерживать и обновлять код по мере необходимости.
Освоив создание шорткодов, вы сможете значительно упростить себе работу и повысить качество сайтов на WordPress.