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

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

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

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

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

Как создать простой шорткод: пример и объяснение

Для создания шорткода в WordPress необходимо использовать функцию add_shortcode(). Рассмотрим базовый пример, который создаст шорткод [wpeditor_hello], выводящий приветствие.

function wpeditor_hello_shortcode() {
    return '<p>Привет, это мой первый шорткод!</p>';
}
add_shortcode('wpeditor_hello', 'wpeditor_hello_shortcode');

Вставьте этот код в файл functions.php вашей темы или в файл подключаемого плагина. После этого в любом посте или странице можно использовать [wpeditor_hello], и WordPress выведет указанный текст.

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

  • Функция wpeditor_hello_shortcode возвращает HTML-строку с приветствием.
  • Функция add_shortcode регистрирует шорткод с именем wpeditor_hello и связывает его с нашей функцией.

Добавление параметров в шорткод для динамического вывода

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

Рассмотрим пример шорткода [wpeditor_button text="Кликни меня" url="https://wpeditor.ru"], который выводит кнопку с заданным текстом и ссылкой.

function wpeditor_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'text' => 'Нажми меня',
            'url' => '#'
        ), $atts, 'wpeditor_button'
    );

    return '<a href="' . esc_url($atts['url']) . '" class="wpeditor-button">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpeditor_button', 'wpeditor_button_shortcode');

Теперь вы можете вставить в контент [wpeditor_button text="Заказать" url="https://wpeditor.ru/order"], и на сайте появится аккуратная кнопка со ссылкой.

Безопасность и очистка данных

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

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

Часто шорткод требует подключения собственных стилей или скриптов. Чтобы сделать это правильно, нужно использовать хуки WordPress.

Пример подключения CSS для нашего шорткода с кнопкой:

function wpeditor_enqueue_shortcode_styles() {
    wp_enqueue_style('wpeditor-button-style', get_stylesheet_directory_uri() . '/css/wpeditor-button.css');
}
add_action('wp_enqueue_scripts', 'wpeditor_enqueue_shortcode_styles');

Создайте файл wpeditor-button.css в папке css вашей темы и добавьте стили, например:

.wpeditor-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: #0073aa;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
}
.wpeditor-button:hover {
    background-color: #005177;
}

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

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

Вот несколько идей для шорткодов, которые можно создавать для решения конкретных задач:

  • Вывод случайной цитаты или совета из заранее заданного списка.
  • Встраивание кастомных форм обратной связи.
  • Отображение последних новостей или товаров с фильтрами.
  • Показывать контент только зарегистрированным пользователям.

Пример шорткода с параметрами для вывода случайной цитаты

function wpeditor_random_quote_shortcode() {
    $quotes = array(
        'Будь изменением, которое хочешь видеть в мире.',
        'Всё, что ни делается, — к лучшему.',
        'Не бойся ошибок, учись на них.',
        'Успех приходит к тем, кто действует.'
    );
    $random_index = array_rand($quotes);
    return '<blockquote>' . esc_html($quotes[$random_index]) . '</blockquote>';
}
add_shortcode('wpeditor_random_quote', 'wpeditor_random_quote_shortcode');

Вставьте [wpeditor_random_quote] в любой материал — посетители будут видеть разные вдохновляющие цитаты.

Советы по отладке и оптимизации шорткодов

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

  • Всегда проверяйте входные параметры через shortcode_atts() и фильтры безопасности.
  • Используйте буферизацию вывода, если нужно выводить сложный HTML.
  • Для тяжёлых операций (запросы к базе, API) кэшируйте результаты.
  • Старайтесь минимизировать подключение сторонних скриптов.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать хук pre_get_posts для фильтрации выводимых постов в WordPress
22.04.2026
Как создать собственный шорткод в WordPress: подробное руководство
05.11.2025
Как автоматизировать обновление transient в WordPress: практическое руководство
15.03.2026
WooCommerce: как избежать проблем с вариантами товаров и их отображением
23.05.2026
WooCommerce: как избежать дублирования товаров при импорте из osCommerce
20.05.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙