Как создать собственный шорткод в 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. Создавая собственные шорткоды, вы получаете:

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

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

Как настроить отключение кеширования для отдельных страниц WooCommerce
07.05.2026
Автоматическое удаление товаров из WooCommerce при пустой корзине
12.05.2026
Как создать динамический файл robots.txt в WordPress
08.03.2026
Автоматическая регистрация пользователей в WordPress: как настроить и автоматизировать процесс
02.12.2025
Как создать настройку плагина в WordPress: подробное руководство для разработчиков
28.11.2025