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

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

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

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

Пример стандартного шорткода — галерея [gallery], которая выводит изображения. Но что если нужно вывести что-то своё? Тогда создаём кастомный шорткод.

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

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

Создание базового шорткода в WordPress

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

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

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

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

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

Шорткоды поддерживают атрибуты — параметры, которые можно передать для изменения вывода. Расширим наш пример:

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

Теперь можно писать [wpelement_hello name="Иван"], и шорткод выведет «Привет, Иван!».

Создание шорткода с динамическим выводом из базы данных

Практическое применение — вывод последних новостей или постов. Создадим шорткод, который выводит список из 5 последних постов.

function wpelement_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5
    ), $atts, 'wpelement_latest_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('wpelement_latest_posts', 'wpelement_latest_posts_shortcode');

Такой шорткод позволит вставлять список постов с количеством, задаваемым параметром: [wpelement_latest_posts count="3"].

Оптимизация и безопасность шорткодов

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

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

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

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

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

Но если вам нужен именно кастомный функционал, лучше написать свой шорткод, как показано выше.

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

Иногда нужно вывести шорткод не в контенте, а прямо в PHP-файлах темы. Для этого используйте функцию do_shortcode():

echo do_shortcode('[wpelement_latest_posts count="4"]');

Это даст вам гибкость в размещении динамического контента.

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

Если шорткод не работает, проверьте:

  • Правильно ли подключён код — в functions.php или плагине.
  • Не конфликтует ли имя шорткода с другими.
  • Используйте error_log() или WP_DEBUG для поиска ошибок.

Также полезно тестировать шорткод на пустом сайте с дефолтной темой.

Автоматическое удаление товаров WooCommerce при отсутствии на складе
26.04.2026
Как решить проблему нерабочих изображений в WordPress после переездов сайта
26.03.2026
Оптимальные названия для постов и страниц в WordPress
23.01.2026
Как создать собственный шорткод в WordPress
11.11.2025
Как использовать AJAX в WordPress для обновления контента без перезагрузки страницы
05.12.2025