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

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

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

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

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

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

Как создать шорткод в WordPress: базовый пример

Для создания шорткода в WordPress нужно использовать функцию add_shortcode. Она регистрирует тег и связывает его с функцией, которая возвращает HTML или другой контент.

Рассмотрим базовый пример, создающий шорткод [wpmanual_greeting], который выводит приветственное сообщение.

function wpmanual_greeting_shortcode() {
    return '<p>Привет, это мой собственный шорткод!</p>';
}
add_shortcode('wpmanual_greeting', 'wpmanual_greeting_shortcode');

Добавьте этот код в файл functions.php вашей темы или в файл кастомного плагина. После этого в любом месте сайта, где вы вставите [wpmanual_greeting], появится приветствие.

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

Шорткоды можно делать более гибкими, передавая параметры. Например, добавим параметр name для персонализации приветствия.

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

Теперь вы можете использовать [wpmanual_greeting name="Алексей"], и шорткод выведет «Привет, Алексей!».

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

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

1. Шорткод для вывода текущей даты

Иногда нужно показывать пользователям актуальную дату. Создадим шорткод [wpmanual_date], который будет выводить дату в нужном формате.

function wpmanual_date_shortcode($atts) {
    $atts = shortcode_atts(
        array('format' => 'd.m.Y'), $atts, 'wpmanual_date'
    );
    return date($atts['format']);
}
add_shortcode('wpmanual_date', 'wpmanual_date_shortcode');

Вы можете использовать его так: [wpmanual_date format="j F Y"], чтобы вывести дату в формате «1 января 2024».

2. Шорткод для показа списка последних постов

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

function wpmanual_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array('count' => 5), $atts, 'wpmanual_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('wpmanual_recent_posts', 'wpmanual_recent_posts_shortcode');

Вызовите шорткод [wpmanual_recent_posts count=3], чтобы показать 3 последние поста.

Советы по написанию шорткодов: безопасность и производительность

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

  • Экранируйте вывод — используйте функции esc_html, esc_attr, wp_kses_post в зависимости от контента, чтобы избежать XSS-уязвимостей.
  • Используйте кэширование, если шорткод выполняет тяжелые запросы к базе данных или внешним сервисам, чтобы не нагружать сервер.
  • Избегайте вывода напрямую — всегда возвращайте результат из функции шорткода, а не выводите его через echo. Это важно для корректной работы WordPress с контентом.
  • Проверяйте входные данные и корректно обрабатывайте параметры, чтобы шорткод не ломался при неправильном вводе.
  • Делайте шорткоды легковесными, не загружайте лишние скрипты или стили без необходимости. Если нужно — подключайте их только при использовании шорткода.

Расширение функционала: подключение CSS и JS к шорткодам

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

Например, добавим к шорткоду [wpmanual_box] стилизованный контейнер с подключением CSS.

function wpmanual_box_shortcode($atts, $content = null) {
    wp_enqueue_style('wpmanual-box-style', get_stylesheet_directory_uri() . '/css/wpmanual-box.css');

    return '<div class="wpmanual-box">' . do_shortcode($content) . '</div>';
}
add_shortcode('wpmanual_box', 'wpmanual_box_shortcode');

В файле wpmanual-box.css можно написать стили для класса wpmanual-box. Таким образом, стили будут загружаться только при использовании шорткода, что улучшит производительность сайта.

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

Если вы не хотите писать шорткоды вручную или хотите расширить их функциональность, обратите внимание на плагины:

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

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

Заключение

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

Как использовать хуки для отложенного выполнения кода в WordPress
05.01.2026
WooCommerce не работает отправка писем после обновления: диагностика и решение
26.04.2026
WooCommerce: как изменить шаблон письма при подтверждении заказа
12.05.2026
Как автоматизировать управление ролями в WordPress с помощью кода
20.12.2025
Как удалить пустые категории в WordPress с помощью кода
08.01.2026