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

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

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

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

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

Основы создания шорткодов: хук и функция

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

function wpfactory_my_shortcode_function($atts, $content = null) {
    // Обработка атрибутов шорткода
    $atts = shortcode_atts(array(
        'title' => 'Заголовок по умолчанию',
    ), $atts, 'wpfactory_shortcode');

    // Возвращаем HTML
    return '<div class="wpfactory-shortcode"><h3>' . esc_html($atts['title']) . '</h3><p>Это содержимое шорткода.</p></div>';
}
add_shortcode('wpfactory_shortcode', 'wpfactory_my_shortcode_function');

В этом примере шорткод [wpfactory_shortcode title="Пример"] выведет блок с заголовком и текстом. Атрибуты передаются в функцию и обрабатываются через shortcode_atts для установки значений по умолчанию.

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

Шорткод списка последних постов

Иногда в контент нужно добавить динамический список последних записей. Создадим шорткод [wpfactory_latest_posts count="5"], который выведет последние N постов.

function wpfactory_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5,
    ), $atts, 'wpfactory_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 class="wpfactory-latest-posts">';
    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('wpfactory_latest_posts', 'wpfactory_latest_posts_shortcode');

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

Шорткод кнопки с кастомными стилями и ссылкой

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

function wpfactory_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url' => '#',
        'text' => 'Нажми меня',
        'color' => 'blue'
    ), $atts, 'wpfactory_button');

    $color_class = sanitize_html_class($atts['color']);

    return '<a href="' . esc_url($atts['url']) . '" class="wpfactory-button ' . $color_class . '">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpfactory_button', 'wpfactory_button_shortcode');

Для работы кнопок добавьте стили в файл темы или плагина:

.wpfactory-button {
    padding: 10px 20px;
    border-radius: 4px;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
}
.wpfactory-button.blue { background-color: #0073aa; }
.wpfactory-button.red { background-color: #d54e21; }

Теперь шорткод [wpfactory_button url="https://wpfactory.ru" text="Перейти" color="red"] выведет красную кнопку с ссылкой.

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

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

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

Однако собственные шорткоды, написанные под конкретные задачи, всегда будут работать быстрее и точнее.

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

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

  • Используйте функции экранирования, например esc_html(), esc_url() для вывода данных, чтобы избежать XSS-уязвимостей.
  • Минимизируйте запросы к базе — если шорткод использует WP_Query, старайтесь кешировать результаты.
  • Не выводите пользовательские данные без проверки и фильтрации.
  • Пишите шорткоды так, чтобы они не ломали верстку и были совместимы с разными шаблонами.

Заключение: почему стоит создавать свои шорткоды в WordPress

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

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

Автоматическое создание Sitemap в WordPress с поддержкой Multisite
09.02.2026
Как удалить кэш и оптимизировать работу сайта на WordPress с помощью Clearfy
02.02.2026
Как создать автоматические сообщения в WordPress с помощью хуков и пингов
04.03.2026
Как автоматизировать обновления плагинов WordPress без рисков
29.11.2025
Как использовать хук WooCommerce для обновления метаданных заказа на этапе оформления
22.04.2026