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

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

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

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

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

  • Вставлять сложный HTML и PHP код в записи без дублирования
  • Автоматизировать вывод динамического контента
  • Давать пользователям удобный интерфейс для добавления функционала

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

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

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

Например, создадим простой шорткод [wpaction_hello], который выводит приветствие:

function wpaction_hello_shortcode() {
    return '<p>Привет от WPAction!</p>';
}
add_shortcode('wpaction_hello', 'wpaction_hello_shortcode');

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

Разбор кода

Функция wpaction_hello_shortcode возвращает строку с HTML, которая и подставляется вместо шорткода. Функция add_shortcode связывает имя шорткода с функцией.

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

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

Расширим наш пример, добавив параметр name, который будет менять имя в приветствии:

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

Теперь в записи можно писать [wpaction_hello name="Иван"], и выведется "Привет, Иван!".

Пояснения

  • shortcode_atts задает значения по умолчанию для параметров
  • Используем esc_html для безопасности вывода
  • Параметры передаются в виде атрибутов шорткода

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

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

function wpaction_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => ''
        ),
        $atts,
        'wpaction_latest_posts'
    );

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

    if (!empty($atts['category'])) {
        $args['category_name'] = sanitize_text_field($atts['category']);
    }

    $query = new WP_Query($args);

    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('wpaction_latest_posts', 'wpaction_latest_posts_shortcode');

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

  • [wpaction_latest_posts count="3"] — выведет 3 последних записи
  • [wpaction_latest_posts count="5" category="novosti"] — 5 последних из категории "новости"

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

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

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

Эти плагины помогут сэкономить время и добавить интерактивные элементы без программирования.

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

Шорткоды могут содержать PHP-код и взаимодействовать с базой данных, поэтому важно соблюдать правила безопасности:

  • Всегда фильтруйте и экранируйте входящие данные: esc_html, sanitize_text_field, intval и др.
  • Избегайте тяжелых запросов в цикле — используйте кэширование, если выводите много данных
  • Не выводите напрямую пользовательский ввод без обработки

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

Итог

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

Как создать мультиязычный сайт на WordPress без плагинов
17.01.2026
Как установить охранные роли в WordPress для доступа к административной панели
09.03.2026
Как создать настройки темы в WordPress с примерами кода
18.11.2025
Как создать автоматические сборки контента в WordPress
01.03.2026
Обработка AJAX запросов в WordPress с примерами кода
21.11.2025