Как создать собственный шорткод с атрибутами в WordPress

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

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

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

Без атрибутов шорткод — это просто фиксированный блок контента, а с атрибутами он становится полноценным инструментом с множеством вариантов использования.

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

Регистрация шорткода в WordPress происходит через функцию add_shortcode(). Для поддержки атрибутов внутри функции-обработчика нужно использовать функцию shortcode_atts(), которая задаёт значения по умолчанию и объединяет их с переданными пользователем.

Давайте рассмотрим пример создания кастомного шорткода [wpkeys_greeting], который выводит приветствие с возможностью указать имя через атрибут.

function wpkeys_greeting_shortcode($atts) {
    // Устанавливаем значения по умолчанию
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
            'time' => 'день' // утро, день, вечер
        ), $atts, 'wpkeys_greeting'
    );

    // Формируем приветствие в зависимости от времени суток
    switch ($atts['time']) {
        case 'утро':
            $greeting = 'Доброе утро';
            break;
        case 'вечер':
            $greeting = 'Добрый вечер';
            break;
        default:
            $greeting = 'Добрый день';
    }

    return "<p>$greeting, {$atts['name']}!</p>";
}
add_shortcode('wpkeys_greeting', 'wpkeys_greeting_shortcode');

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

[wpkeys_greeting name="Алексей" time="утро"]

И он выведет: Доброе утро, Алексей!

Расширение функционала: обработка вложенных атрибутов и безопасности

В реальных проектах атрибуты могут быть сложнее — например, список категорий, фильтры по дате или сложные настройки. Важно учитывать безопасность, обрабатывая входные данные, чтобы избежать XSS-уязвимостей и других проблем.

В нашем примере можно добавить фильтрацию и экранирование:

function wpkeys_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
            'time' => 'день'
        ), $atts, 'wpkeys_greeting'
    );

    // Экранируем имя для безопасности
    $name = sanitize_text_field($atts['name']);
    $time = sanitize_text_field($atts['time']);

    switch ($time) {
        case 'утро':
            $greeting = 'Доброе утро';
            break;
        case 'вечер':
            $greeting = 'Добрый вечер';
            break;
        default:
            $greeting = 'Добрый день';
    }

    return "<p>" . esc_html($greeting) . ", " . esc_html($name) . "!</p>";
}
add_shortcode('wpkeys_greeting', 'wpkeys_greeting_shortcode');

Использование функций sanitize_text_field() и esc_html() гарантирует, что пользователь не сможет вставить вредоносный код.

Примеры популярных плагинов для работы с шорткодами и атрибутами

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

  • Shortcodes Ultimate — мощный набор готовых шорткодов с поддержкой атрибутов и визуальным редактором.
  • WP Shortcode by MyThemeShop — простой в использовании плагин с базовым набором шорткодов и возможностью расширения.
  • Custom Content Shortcode — позволяет создавать собственные шорткоды с помощью интерфейса без кодинга.

Однако в некоторых случаях написание собственного шорткода даёт максимальную гибкость и оптимизацию.

Практические советы по созданию и тестированию шорткодов с атрибутами

Выбор уникального имени

Всегда используйте префиксы, связанные с вашим проектом или доменом (например, wpkeys_), чтобы избежать конфликтов с другими плагинами.

Документирование параметров

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

Тестирование на разных версиях PHP и WordPress

Проверяйте работу шорткода на актуальных версиях CMS и PHP, особенно если используете современные функции.

Оптимизация вывода

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

Заключение: почему стоит использовать шорткоды с атрибутами

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

Используйте приведённые примеры и рекомендации, чтобы создавать собственные шорткоды для wpkeys.ru и других проектов с максимальной пользой и безопасностью.

Как создать автоматические отзывы в WordPress с помощью WPRemark
16.03.2026
Как создать собственный шорткод с атрибутами в WordPress
16.11.2025
Как изменить тип записи (post type) в WordPress без потери SEO и ссылок
10.12.2025
Как создать настройку «Отсутствие товара» в WooCommerce с выводом кастомного сообщения
09.04.2026
WooCommerce: автоматическое изменение стоимости и наличия товара при оформлении заказа
29.05.2026

На оформлении, скоро здесь появится полноценный ресурс