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

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

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

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

Основные преимущества использования шорткодов:

  • Повторное использование кода без дублирования
  • Удобство для контент-менеджеров и авторов
  • Упрощение внедрения кастомного функционала

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

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

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

Рассмотрим базовый пример создания шорткода, который выводит приветствие с именем пользователя:

function wplist_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'wplist_greeting'
    );
    return 'Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на WPList.ru.';
}
add_shortcode('wplist_greeting', 'wplist_greeting_shortcode');

В этом примере мы создали шорткод [wplist_greeting name="Иван"], который выведет «Привет, Иван! Добро пожаловать на WPList.ru.» Если параметр name не передан, будет использовано значение по умолчанию «Гость».

Обратите внимание на использование функции esc_html() для безопасного вывода данных, что является обязательным при работе с пользовательским вводом.

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

Шорткоды часто требуют передачи параметров для более гибкой настройки вывода. Функция shortcode_atts() помогает задать значения по умолчанию и объединить их с переданными атрибутами.

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

function wplist_quote_shortcode($atts, $content = null) {
    $atts = shortcode_atts(
        array('author' => 'Неизвестный'),
        $atts,
        'wplist_quote'
    );
    $quote = esc_html($content);
    $author = esc_html($atts['author']);
    return '<blockquote style="border-left: 4px solid #0073aa; padding-left: 10px; margin: 15px 0;">' . $quote . '<footer>— ' . $author . '</footer></blockquote>';
}
add_shortcode('wplist_quote', 'wplist_quote_shortcode');

Используйте шорткод так:

[wplist_quote author="Алексей"]Текст цитаты здесь[/wplist_quote]

Это выведет красиво оформленную цитату с автором, что удобно при оформлении статей и отзывов.

Шорткод с подключением внешних скриптов и стилей

Иногда шорткод требует подключения CSS или JavaScript для корректного отображения. Для этого рекомендуем использовать хук wp_enqueue_scripts и функцию wp_enqueue_style или wp_enqueue_script.

Рассмотрим пример шорткода, который выводит кнопку с анимацией, для которой нужен отдельный CSS:

function wplist_enqueue_button_assets() {
    wp_enqueue_style('wplist-button-style', get_stylesheet_directory_uri() . '/css/wplist-button.css', array(), '1.0');
}
add_action('wp_enqueue_scripts', 'wplist_enqueue_button_assets');

function wplist_button_shortcode($atts) {
    $atts = shortcode_atts(array('text' => 'Нажми меня'), $atts, 'wplist_button');
    $text = esc_html($atts['text']);
    return '<button class="wplist-animated-button">' . $text . '</button>';
}
add_shortcode('wplist_button', 'wplist_button_shortcode');

В файле wplist-button.css можно написать стили с анимацией, например:

.wplist-animated-button {
    background-color: #0073aa;
    color: #fff;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.wplist-animated-button:hover {
    background-color: #005177;
}

Шорткод [wplist_button text="Купить"] создаст анимированную кнопку с текстом «Купить».

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

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

  • Всегда экранируйте входящие данные с помощью esc_html(), esc_attr() или подобных функций.
  • Избегайте выполнения долгих или ресурсоёмких операций внутри шорткода — это может замедлить загрузку страницы.
  • Проверяйте наличие необходимых данных и используйте значения по умолчанию.
  • Для сложных шорткодов лучше создавать отдельные классы или подключать шаблоны через функцию locate_template() или get_template_part().

Для отладки можно временно добавлять логирование в файл через error_log() или использовать плагины для отладки PHP.

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

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

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

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

Оптимизация изображений в WordPress для ускорения сайта
16.12.2025
Как удалить проблемные виджеты в WordPress без ошибок и потери данных
23.03.2026
Как обновить WordPress без ошибок и потери данных
27.11.2025
Как удалить старые ревизии в WordPress быстро и безопасно
16.01.2026
Как проверить и исправить ошибки в базе данных WordPress
09.04.2026