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

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

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

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

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

В этой статье мы рассмотрим, как создать шорткод на примере, а также разберем, как передавать параметры и обрабатывать их.

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

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

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

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

Теперь в любом месте контента можно использовать [hello name="Иван"], и будет выведено: Привет, Иван!

Если параметр name не передан, по умолчанию будет использовано "Гость".

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

Параметры позволяют настраивать вывод шорткода динамически. В функции обработчике используйте shortcode_atts() для объединения переданных атрибутов с дефолтными значениями. Это гарантирует корректную работу даже если некоторые параметры не заданы.

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

function wpbit_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array('count' => 5),
        $atts,
        'recent_posts'
    );

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

    if (!$query->have_posts()) {
        return '<p>Посты не найдены.</p>';
    }

    $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('recent_posts', 'wpbit_recent_posts_shortcode');

В контенте можно использовать [recent_posts count="3"], чтобы отобразить 3 последних поста.

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

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

  • Показать текущую дату и время: шорткод, который выводит дату в нужном формате.
  • Кнопка с кастомной ссылкой: шорткод, генерирующий кнопку с параметрами цвета и URL.
  • Отображение произвольного поля: шорткод для показа мета-данных записи.
  • Вставка Google карты: с передачей адреса через параметр.

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

function wpbit_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url' => '#',
        'text' => 'Нажми меня',
        'color' => '#0073aa'
    ), $atts, '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;">' . $text . '</a>';
}
add_shortcode('button', 'wpbit_button_shortcode');

Используйте [button url="https://wpbit.ru" text="Перейти на WPBit" color="#005f73"] для вывода кнопки.

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

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

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

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

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

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

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

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

Как создать динамичный плагин для WordPress с AJAX для улучшения UX
25.12.2025
Как удалить или заблокировать регистрацию пользователей в WordPress
09.01.2026
WooCommerce: как исключить товары из поиска и каталога по атрибутам
13.05.2026
Как удалить категории без записей в WordPress автоматически
19.02.2026
Как автоматизировать создание и удаление туториалов в WordPress
26.02.2026