Как создать и использовать атрибуты шорткода в WordPress

|

В WordPress шорткоды — это мощный инструмент для добавления динамического контента в записи, страницы и виджеты. Но намного удобнее использовать шорткоды с атрибутами, которые позволяют настраивать вывод без необходимости создавать отдельные шорткоды под каждую задачу.

Что такое атрибуты шорткода и зачем они нужны

Атрибуты шорткода — это параметры, которые передаются внутрь шорткода для изменения его поведения или вывода. Например, если у вас есть шорткод для отображения кнопки, атрибуты могут задавать текст на кнопке, цвет, ссылку и другие параметры.

Использование атрибутов позволяет сделать шорткод универсальным и гибким без дублирования кода. Это особенно важно для поддержки и масштабируемости сайта.

Как правильно регистрировать шорткод с атрибутами в WordPress

Для регистрации шорткода с атрибутами используется функция add_shortcode. Основная логика обработки атрибутов происходит внутри функции обратного вызова, которая принимает массив атрибутов и контент.

Рассмотрим пример создания шорткода [wpzoom_button] с атрибутами text, url и color:

function wpzoom_button_shortcode($atts) {
    // Задаём значения по умолчанию для атрибутов
    $atts = shortcode_atts(
        array(
            'text' => 'Нажми меня',
            'url' => '#',
            'color' => 'blue',
        ),
        $atts,
        'wpzoom_button'
    );

    // Экранируем значения для безопасности
    $text = esc_html($atts['text']);
    $url = esc_url($atts['url']);
    $color = esc_attr($atts['color']);

    // Возвращаем HTML кнопки с заданными параметрами
    return '<a href="' . $url . '" class="wpzoom-btn wpzoom-btn-' . $color . '">' . $text . '</a>';
}
add_shortcode('wpzoom_button', 'wpzoom_button_shortcode');

В этом примере мы используем функцию shortcode_atts для объединения переданных атрибутов с дефолтными значениями, что позволяет избежать ошибок, если пользователь не указал какой-то параметр.

Добавление стилей для шорткода с атрибутами

Чтобы кнопка выглядела красиво, добавим стили в файл темы или подключим их через функцию:

function wpzoom_enqueue_styles() {
    wp_enqueue_style('wpzoom-shortcode-style', get_stylesheet_directory_uri() . '/css/wpzoom-shortcodes.css');
}
add_action('wp_enqueue_scripts', 'wpzoom_enqueue_styles');

В файле wpzoom-shortcodes.css можно описать стили для кнопок:

.wpzoom-btn {
    padding: 10px 20px;
    color: #fff;
    text-decoration: none;
    border-radius: 3px;
    display: inline-block;
    font-weight: 600;
}
.wpzoom-btn-blue { background-color: #0073aa; }
.wpzoom-btn-red { background-color: #d63638; }
.wpzoom-btn-green { background-color: #46b450; }

Использование шорткода с атрибутами на практике

Теперь, когда шорткод зарегистрирован и стили подключены, можно использовать его в редакторе WordPress с разными параметрами:

Такой подход значительно упрощает редактирование контента и даёт гибкость при создании страниц.

Расширение шорткода: обработка вложенного контента

Помимо атрибутов, шорткоды могут принимать внутренний контент, например, текст между тегами [wpzoom_button]Текст кнопки[/wpzoom_button]. Давайте расширим наш шорткод, чтобы он учитывал этот контент.

function wpzoom_button_shortcode($atts, $content = null) {
    $atts = shortcode_atts(
        array(
            'url' => '#',
            'color' => 'blue',
        ),
        $atts,
        'wpzoom_button'
    );

    $text = $content ? esc_html($content) : 'Нажми меня';
    $url = esc_url($atts['url']);
    $color = esc_attr($atts['color']);

    return '<a href="' . $url . '" class="wpzoom-btn wpzoom-btn-' . $color . '">' . $text . '</a>';
}
add_shortcode('wpzoom_button', 'wpzoom_button_shortcode');

Теперь можно использовать шорткод так:

[wpzoom_button url="https://wpzoom.ru" color="green"]Перейти на WPZoom</wpzoom_button]

Это позволяет ещё больше кастомизировать вывод, комбинируя атрибуты и содержимое.

Дополнительные советы по безопасности и производительности

При работе с атрибутами важно обязательно использовать функции экранирования: esc_html, esc_url, esc_attr. Это защитит сайт от XSS-атак и некорректных данных.

Если шорткод генерирует сложный HTML или требует подключения скриптов, лучше делать это через wp_enqueue_script и wp_enqueue_style, чтобы не загружать лишнее на всех страницах.

Для оптимизации можно кешировать результат шорткода, если он не меняется часто. Это можно сделать через транзиенты или объектный кеш WordPress.

Заключение и полезные плагины для работы с шорткодами

Создание шорткодов с атрибутами — обязательный навык для разработчиков на WordPress. Это позволяет создавать универсальные и мощные элементы, которые легко использовать в редакторе.

Если хотите упростить работу с шорткодами, обратите внимание на плагины, такие как Clearfy Pro, который помогает оптимизировать и управлять шорткодами и другими функциями сайта.

Также полезен плагин WPRemark для создания пользовательских шорткодов без программирования.

WooCommerce: решение проблемы с неактивными кнопками корзины после обновления
22.05.2026
Как добавить поддержку WebP в WordPress без плагинов
18.03.2026
Автоматическое удаление спама в комментариях WordPress: лучшие плагины и примеры кода
29.12.2025
Автоматическое удаление старых комментариев в WordPress: практические решения и примеры кода
21.03.2026
WooCommerce: автоматическое отключение неактивных методов оплаты
12.05.2026
×
WPShop
партнерка без «но»!

До 3225₽ за каждую продажу

Подключиться к игре