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

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

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

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

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

  • Упрощают работу авторов контента;
  • Повышают гибкость управления сайтом;
  • Позволяют внедрять сложный PHP-код в посты безопасно и структурировано;
  • Облегчают поддержку и обновление сайта.

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

Как создать простой шорткод в WordPress

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

function wpdevelop_simple_shortcode() {
    return 'Привет! Это мой первый шорткод.';
}
add_shortcode('wpdevelop_hello', 'wpdevelop_simple_shortcode');

Теперь в редакторе WordPress можно вставить [wpdevelop_hello], и на сайте появится текст: «Привет! Это мой первый шорткод.»

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

Шорткод с параметрами: как добавить динамику

Чаще всего шорткоды нужны для вывода разных вариантов контента. Для этого в функцию принимаются параметры.

function wpdevelop_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'гость',
            'time' => 'день'
        ), $atts, 'wpdevelop_greeting'
    );
    return 'Добрый ' . esc_html($atts['time']) . ', ' . esc_html($atts['name']) . '!';
}
add_shortcode('wpdevelop_greeting', 'wpdevelop_greeting_shortcode');

Теперь в записи можно использовать шорткод с параметрами: [wpdevelop_greeting name="Алексей" time="вечер"], и будет вывод: «Добрый вечер, Алексей!»

Важно использовать функцию shortcode_atts для установки значений по умолчанию и esc_html для безопасности вывода.

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

Шорткоды могут содержать сложную логику, HTML-разметку и даже взаимодействие с базой данных. Например, сделаем шорткод, который выводит список последних опубликованных записей.

function wpdevelop_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5
    ), $atts, 'wpdevelop_recent_posts');

    $query = new WP_Query(array(
        'posts_per_page' => intval($atts['count']),
        'post_status' => 'publish'
    ));

    if (!$query->have_posts()) {
        return 'Нет опубликованных записей.';
    }

    $output = '<ul>';

    while ($query->have_posts()) {
        $query->the_post();
        $output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
    }

    wp_reset_postdata();

    $output .= '</ul>';

    return $output;
}
add_shortcode('wpdevelop_recent_posts', 'wpdevelop_recent_posts_shortcode');

Вызов шорткода [wpdevelop_recent_posts count="3"] выведет ссылки на 3 последних поста. Такой подход очень полезен для создания блоков с динамическим содержимым на страницах.

Обработка ошибок и безопасность

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

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

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

Чтобы не потерять шорткоды при смене темы, лучше создать собственный плагин. Для этого создайте папку wpdevelop-shortcodes в каталоге wp-content/plugins и внутри файл wpdevelop-shortcodes.php со следующим содержанием:

<?php
/**
 * Plugin Name: WPDevelop Shortcodes
 * Description: Собственные шорткоды для сайта.
 * Version: 1.0
 * Author: WPDevelop
 */

// Вставьте сюда функции шорткодов из предыдущих примеров

function wpdevelop_simple_shortcode() {
    return 'Привет! Это мой первый шорткод.';
}
add_shortcode('wpdevelop_hello', 'wpdevelop_simple_shortcode');

// остальные шорткоды...

После активации плагина шорткоды станут доступны на сайте, независимо от темы.

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

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

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

Иногда нужно, чтобы шорткод обрабатывал вложенный контент, например, для создания аккордеонов или табов. Для этого функция шорткода принимает параметр $content.

function wpdevelop_box_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'title' => 'Заголовок'
    ), $atts, 'wpdevelop_box');

    return '<div class="wpdevelop-box"><h3>' . esc_html($atts['title']) . '</h3><div class="content">' . do_shortcode($content) . '</div></div>';
}
add_shortcode('wpdevelop_box', 'wpdevelop_box_shortcode');

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

[wpdevelop_box title="Важное сообщение"]
Текст внутри блока. Можно использовать другие шорткоды: [wpdevelop_hello]
[/wpdevelop_box]

Этот приём позволяет строить сложные структуры из шорткодов.

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

Хотя создавать свои шорткоды полезно, иногда удобнее использовать готовые решения:

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

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

Итоги: как использовать шорткоды эффективно

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

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

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

Как создать настройку переключатель темы в WordPress с применением хуков
16.12.2025
WooCommerce: как автоматически удалять заказы по статусу и дате
24.06.2026
Как удалить или изменить slug кастомного типа записи в WordPress без потери данных
03.03.2026
Автоматическая регистрация пользователей в WordPress: как настроить и автоматизировать процесс
02.12.2025
Как создать автоматический сбор отзывов в WordPress
16.02.2026