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

Шорткоды в WordPress — это мощный инструмент, который позволяет добавлять сложный функционал в записи и страницы без необходимости писать HTML или PHP каждый раз. Они упрощают работу редакторов и разработчиков, позволяя динамически выводить контент и функционал. В этой статье мы подробно разберём, как создать собственный шорткод в WordPress, используя примеры с объяснениями и советами по безопасности.

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

Шорткод — это короткая запись в квадратных скобках, например [example], которая при выводе на странице заменяется на определённый код или контент. Это позволяет легко внедрять сложные элементы, такие как галереи, формы, кнопки и многое другое, в текстовые поля без прямого редактирования шаблонов.

Преимущества шорткодов:

  • Удобство для пользователей и редакторов.
  • Повторное использование кода в разных местах сайта.
  • Изоляция логики и презентации.

Создание собственного шорткода позволяет расширить стандартные возможности WordPress под конкретные задачи.

Как зарегистрировать пользовательский шорткод в WordPress

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

Рассмотрим пример создания простого шорткода, который выводит текущую дату:

function wpticket_show_current_date() {
    return date('d.m.Y');
}
add_shortcode('wpticket_date', 'wpticket_show_current_date');

Добавьте этот код в файл functions.php вашей темы или в собственный плагин. Теперь в любом месте контента вы можете использовать [wpticket_date], и он выведет дату в формате день.месяц.год.

Передача параметров в шорткод

Шорткоды могут принимать параметры, позволяя менять вывод в зависимости от входящих значений. Для этого в callback-функцию передаётся массив атрибутов.

Например, создадим шорткод, который выводит приветствие с именем:

function wpticket_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'wpticket_greeting'
    );
    return 'Привет, ' . esc_html($atts['name']) . '!';
}
add_shortcode('wpticket_greeting', 'wpticket_greeting_shortcode');

Теперь можно вставить [wpticket_greeting name="Алексей"] и получить «Привет, Алексей!».

Создание более сложного шорткода с HTML и CSS

Часто шорткод нужен для вывода стилизованного блока, например, кнопки или карточки товара. В этом случае лучше возвращать HTML с классами и подключать стили отдельно, чтобы не загромождать контент.

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

function wpticket_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'url' => '#',
            'text' => 'Нажми меня',
            'color' => 'blue'
        ),
        $atts,
        'wpticket_button'
    );
    $color_class = 'wpticket-btn-' . sanitize_html_class($atts['color']);
    return '<a href="' . esc_url($atts['url']) . '" class="wpticket-btn ' . $color_class . '">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpticket_button', 'wpticket_button_shortcode');

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

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

В файле wpticket-shortcodes.css определим стили:

.wpticket-btn {
    padding: 10px 20px;
    border-radius: 4px;
    text-decoration: none;
    color: #fff;
    font-weight: bold;
}
.wpticket-btn-blue { background-color: #0073aa; }
.wpticket-btn-red { background-color: #d54e21; }

Теперь вызов [wpticket_button url="https://wpticket.ru" text="Перейти на сайт" color="red"] выведет стилизованную красную кнопку.

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

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

Также не выводите напрямую PHP-код или данные из базы без проверки и фильтрации. Если шорткод создаёт формы или принимает данные от пользователей, дополнительно используйте nonce и проверяйте права доступа.

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

function wpticket_safe_text_shortcode($atts) {
    $atts = shortcode_atts(array('text' => 'Пример текста'), $atts);
    $safe_text = wp_kses_post($atts['text']);
    return '<div class="wpticket-text">' . $safe_text . '</div>';
}
add_shortcode('wpticket_text', 'wpticket_safe_text_shortcode');

Здесь используется wp_kses_post, которая разрешает безопасный HTML, но удаляет потенциально опасные теги.

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

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

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

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

Заключение

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

Как добавить автотьюторные ответы в тикет-системе WordPress
04.03.2026
Как создать автоматическое сообщение о изменении статуса тикета в WordPress
21.03.2026
Как создать практическую систему обратной связи в WordPress с примерами кода
13.12.2025
Как использовать WP-Cron для автоматического удаления старых тикетов в WordPress
11.05.2026
Как добавить автоматическое сохранение тикета в WordPress
17.12.2025