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

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

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

Шорткод — это специальный тег в квадратных скобках, который WordPress автоматически заменяет на определённый контент. Например, [gallery] выводит галерею изображений, а [audio] — аудиоплеер. Создавая собственные шорткоды, вы можете быстро добавлять функционал, который повторяется на разных страницах, управлять выводом и настраивать поведение с помощью параметров.

Преимущества пользовательских шорткодов:

  • Удобство вставки сложных элементов в контент без знаний кода.
  • Возможность параметризации для гибкой настройки вывода.
  • Лёгкость интеграции в любую тему или плагин.

Как зарегистрировать шорткод в WordPress — базовый пример

Для регистрации шорткода используется функция add_shortcode(). Она принимает два параметра: имя шорткода и функцию-обработчик, которая возвращает HTML-код для вывода.

Пример простого шорткода без параметров:

function wplite_hello_shortcode() {
    return '<p>Привет от WP Lite!</p>';
}
add_shortcode('wplite_hello', 'wplite_hello_shortcode');

В редакторе WordPress при вставке [wplite_hello] отобразится «Привет от WP Lite!».

Добавляем параметры к шорткоду — гибкий вывод

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

Пример шорткода с параметром name:

function wplite_greet_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'wplite_greet'
    );
    return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на WP Lite.</p>';
}
add_shortcode('wplite_greet', 'wplite_greet_shortcode');

Теперь можно использовать шорткод так: [wplite_greet name="Алексей"]. Выведется «Привет, Алексей! Добро пожаловать на WP Lite.»

Пояснения к коду

  • shortcode_atts() — функция для объединения переданных параметров с дефолтными значениями.
  • Санитизация esc_html() нужна для безопасности, чтобы избежать XSS-уязвимостей.

Примеры полезных пользовательских шорткодов

Шорткод вывода текущей даты с форматированием

function wplite_date_shortcode($atts) {
    $atts = shortcode_atts(
        array('format' => 'd.m.Y'),
        $atts,
        'wplite_date'
    );
    return date($atts['format']);
}
add_shortcode('wplite_date', 'wplite_date_shortcode');

Использование: [wplite_date format="Y-m-d"] выведет, например, 2024-06-10.

Шорткод для кнопки с ссылкой и настройкой цвета

function wplite_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'url' => '#',
            'text' => 'Нажми меня',
            'color' => '#0073aa'
        ),
        $atts,
        'wplite_button'
    );

    $url = esc_url($atts['url']);
    $text = esc_html($atts['text']);
    $color = esc_attr($atts['color']);

    return '<a href="' . $url . '" style="
        display: inline-block;
        padding: 10px 20px;
        background-color: ' . $color . ';
        color: #fff;
        text-decoration: none;
        border-radius: 4px;"
        target="_blank">' . $text . '</a>';
}
add_shortcode('wplite_button', 'wplite_button_shortcode');

Пример использования: [wplite_button url="https://wplite.ru" text="Перейти на сайт" color="#e74c3c"]

Как зарегистрировать шорткод в плагине или functions.php

Для наилучшей практики пользовательские шорткоды лучше добавлять через плагин или в файл functions.php активной темы. Если шорткод относится к функционалу сайта, который не должен зависеть от темы, рекомендуется создавать отдельный плагин.

Пример минимального плагина с шорткодом:

<?php
/**
 * Plugin Name: WP Lite Shortcodes
 * Description: Пользовательские шорткоды для сайта WP Lite.
 * Version: 1.0
 * Author: Ваше Имя
 */

function wplite_hello_shortcode() {
    return '<p>Привет от WP Lite!</p>';
}
add_shortcode('wplite_hello', 'wplite_hello_shortcode');

Отладка и советы по безопасности при создании шорткодов

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

  • Всегда фильтруйте и санитизируйте входящие параметры с помощью функций esc_html(), esc_attr(), esc_url() и др.
  • Не выполняйте опасный код, если параметры пришли от пользователя.
  • Проверяйте корректность данных, особенно если они используются в SQL-запросах или для вызова внешних API.
  • Для сложных шорткодов лучше разделять логику и вывод — сначала формируйте данные, потом возвращайте готовый HTML.

Если шорткод выводит большой объём данных, подумайте о кешировании результата с помощью транзиентов (set_transient(), get_transient()).

Заключение

Создание пользовательских шорткодов с поддержкой параметров — мощный инструмент для расширения возможностей WordPress без глубоких знаний PHP и JavaScript. Используйте правильные методы регистрации, фильтрации и возвращайте корректный HTML. Это позволит вам создавать удобные и гибкие функциональные блоки, которые легко использовать в любых записях и страницах сайта.

Как использовать функции WooCommerce в WordPress для разработки
04.12.2025
Как избежать проблемы с отслеживанием изменений в WordPress
25.03.2026
Решение проблемы неработающей отправки формы оформления заказа в WooCommerce
06.06.2026
Как решить проблему неработающих скриптов в WordPress
16.02.2026
Как использовать хук WooCommerce before_add_to_cart для дополнительной логики в корзине
14.05.2026