Как создать собственный шорткод в 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!

Как оптимизировать загрузку скриптов и стилей WooCommerce для ускорения сайта
28.04.2026
Как использовать WPCommunity для создания собственного форума на WordPress
26.03.2026
Автоматическое удаление корзины в WooCommerce после оплаты
01.05.2026
Как установить и настроить защиту от bruteforce-атак в WordPress без плагинов
21.04.2026
Как использовать фильтры WooCommerce для изменения цены товара на лету
28.04.2026