Шорткоды в WordPress — это мощный инструмент, который позволяет легко добавлять сложный функционал внутрь постов и страниц без необходимости писать много кода вручную. В этой статье мы подробно разберем, как создавать собственные шорткоды, чтобы расширить возможности сайта и упростить работу с контентом.
Что такое шорткод в WordPress и зачем он нужен
Шорткод — это специальный тег в квадратных скобках, например [gallery], который WordPress автоматически заменяет на определенный контент или функционал при выводе страницы. Они часто используются для вставки галерей, форм, кнопок и другого интерактивного контента.
Создание собственных шорткодов позволяет кастомизировать сайт под конкретные задачи, делая контент более динамичным и удобным для редактирования. Например, можно создать шорткод для вывода списка последних новостей, кастомных кнопок с атрибутами, или даже интеграции с внешними сервисами.
Основы создания шорткодов: хук и функция
Для регистрации шорткода используется функция add_shortcode, которая принимает два параметра: имя шорткода и функцию, которая будет возвращать HTML или другой вывод.
function wpfactory_my_shortcode_function($atts, $content = null) {
// Обработка атрибутов шорткода
$atts = shortcode_atts(array(
'title' => 'Заголовок по умолчанию',
), $atts, 'wpfactory_shortcode');
// Возвращаем HTML
return '<div class="wpfactory-shortcode"><h3>' . esc_html($atts['title']) . '</h3><p>Это содержимое шорткода.</p></div>';
}
add_shortcode('wpfactory_shortcode', 'wpfactory_my_shortcode_function');В этом примере шорткод [wpfactory_shortcode title="Пример"] выведет блок с заголовком и текстом. Атрибуты передаются в функцию и обрабатываются через shortcode_atts для установки значений по умолчанию.
Примеры полезных шорткодов с разбором
Шорткод списка последних постов
Иногда в контент нужно добавить динамический список последних записей. Создадим шорткод [wpfactory_latest_posts count="5"], который выведет последние N постов.
function wpfactory_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5,
), $atts, 'wpfactory_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 class="wpfactory-latest-posts">';
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('wpfactory_latest_posts', 'wpfactory_latest_posts_shortcode');Этот шорткод удобно использовать в любых страницах или виджетах, чтобы динамически показывать последние новости без использования сторонних плагинов.
Шорткод кнопки с кастомными стилями и ссылкой
Для удобства создания кнопок с разными URL и стилями можно сделать шорткод с параметрами:
function wpfactory_button_shortcode($atts) {
$atts = shortcode_atts(array(
'url' => '#',
'text' => 'Нажми меня',
'color' => 'blue'
), $atts, 'wpfactory_button');
$color_class = sanitize_html_class($atts['color']);
return '<a href="' . esc_url($atts['url']) . '" class="wpfactory-button ' . $color_class . '">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpfactory_button', 'wpfactory_button_shortcode');Для работы кнопок добавьте стили в файл темы или плагина:
.wpfactory-button {
padding: 10px 20px;
border-radius: 4px;
color: #fff;
text-decoration: none;
font-weight: bold;
}
.wpfactory-button.blue { background-color: #0073aa; }
.wpfactory-button.red { background-color: #d54e21; }Теперь шорткод [wpfactory_button url="https://wpfactory.ru" text="Перейти" color="red"] выведет красную кнопку с ссылкой.
Использование плагинов для управления шорткодами
Если хочется не писать код самостоятельно, а использовать готовые решения, обратите внимание на плагины:
- Shortcodes Ultimate — огромный набор готовых шорткодов с визуальным редактором.
- WP Shortcode — простой плагин с базовыми шорткодами для кнопок, колонок, галерей.
- Custom Shortcodes — позволяет создавать шорткоды через админку без кода.
Однако собственные шорткоды, написанные под конкретные задачи, всегда будут работать быстрее и точнее.
Советы по безопасности и производительности шорткодов
При создании шорткодов важно соблюдать несколько правил:
- Используйте функции экранирования, например
esc_html(),esc_url()для вывода данных, чтобы избежать XSS-уязвимостей. - Минимизируйте запросы к базе — если шорткод использует WP_Query, старайтесь кешировать результаты.
- Не выводите пользовательские данные без проверки и фильтрации.
- Пишите шорткоды так, чтобы они не ломали верстку и были совместимы с разными шаблонами.
Заключение: почему стоит создавать свои шорткоды в WordPress
Самостоятельные шорткоды дают полную свободу в управлении контентом и позволяют адаптировать сайт под любые задачи. Это отличный способ повысить эффективность и гибкость сайта, особенно если стандартных плагинов не хватает или хочется оптимизировать нагрузку.
Используйте приведённые примеры как шаблон и расширяйте их, учитывая особенности вашего проекта. Создавайте удобные, безопасные и производительные шорткоды, которые сделают работу с сайтом проще и приятнее.