Как добавить свое шорткод в WordPress

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

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

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

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

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

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

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

Рассмотрим минимальный пример, который добавляет шорткод [wprus_hello] и выводит приветствие:

function wprus_hello_shortcode() {
    return '<p>Привет, это мой первый шорткод!</p>';
}
add_shortcode('wprus_hello', 'wprus_hello_shortcode');

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

Параметры шорткода

Шорткод может принимать параметры для управления выводом. Например, добавим параметр name:

function wprus_greeting_shortcode($atts) {
    $atts = shortcode_atts(array(
        'name' => 'гость',
    ), $atts, 'wprus_greeting');

    return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('wprus_greeting', 'wprus_greeting_shortcode');

Теперь вы можете использовать [wprus_greeting name="Иван"], и шорткод выведет Привет, Иван!

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

1. Шорткод для кнопки с кастомным URL

Создадим шорткод, который выведет кнопку с текстом и ссылкой, заданными через параметры:

function wprus_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'text' => 'Нажми меня',
        'url' => '#',
        'class' => 'wprus-button',
    ), $atts, 'wprus_button');

    $text = esc_html($atts['text']);
    $url = esc_url($atts['url']);
    $class = esc_attr($atts['class']);

    return '<a href="' . $url . '" class="' . $class . '">' . $text . '</a>';
}
add_shortcode('wprus_button', 'wprus_button_shortcode');

Используйте так: [wprus_button text="Перейти" url="https://wprus.ru" class="btn-primary"]

Для стилизации добавьте CSS в тему:

.wprus-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: #0073aa;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
}
.wprus-button:hover {
    background-color: #005177;
}

2. Шорткод для вывода последнего поста определенной категории

Этот шорткод выводит заголовок и ссылку на последний опубликованный пост в заданной категории:

function wprus_latest_post_shortcode($atts) {
    $atts = shortcode_atts(array(
        'category' => '',
    ), $atts, 'wprus_latest_post');

    if (empty($atts['category'])) {
        return '<p>Категория не указана.</p>';
    }

    $query = new WP_Query(array(
        'posts_per_page' => 1,
        'category_name' => sanitize_text_field($atts['category']),
        'post_status' => 'publish',
    ));

    if (!$query->have_posts()) {
        return '<p>Посты в категории не найдены.</p>';
    }

    $query->the_post();
    $title = get_the_title();
    $link = get_permalink();
    wp_reset_postdata();

    return '<a href="' . esc_url($link) . '">' . esc_html($title) . '</a>';
}
add_shortcode('wprus_latest_post', 'wprus_latest_post_shortcode');

Пример использования: [wprus_latest_post category="novosti"]

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

При создании шорткодов важно:

  • Обрабатывать и валидировать входящие параметры — используйте функции esc_html, esc_url, sanitize_text_field и другие.
  • Не выводить напрямую пользовательский ввод без фильтрации.
  • Минимизировать запросы к базе данных — лучше кешировать результаты, если шорткод используется часто.
  • Добавлять атрибуты безопасности для HTML, если это необходимо.

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

function wprus_complex_shortcode() {
    ob_start();
    ?>
    <div class="complex-block">
        <h3>Заголовок блока</h3>
        <p>Описание блока с <strong>HTML</strong> контентом.</p>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode('wprus_complex', 'wprus_complex_shortcode');

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

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

  • Shortcoder — позволяет создавать свои шорткоды с HTML, JavaScript и PHP без программирования.
  • Insert PHP Code Snippet — дает возможность создавать шорткоды с PHP-кодом.
  • Shortcodes Ultimate — большой набор готовых шорткодов для самых разных задач.

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

Итоговые рекомендации по созданию шорткодов

Создавая шорткод, придерживайтесь следующих принципов:

  • Давайте уникальные и понятные имена, чтобы не было конфликтов с другими плагинами или темами.
  • Используйте префиксы, например wprus_, чтобы обозначить авторство и избежать коллизий.
  • Обрабатывайте параметры и данные безопасно.
  • Документируйте функции и параметры для удобства поддержки.

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

Как удалить битые ссылки в WordPress: автоматические и ручные методы
05.04.2026
Как создать и использовать кастомные таблицы в WordPress: пошаговое руководство
12.02.2026
WooCommerce: автоматическое удаление старых неоплаченных заказов
18.05.2026
Оптимизация загрузки шаблонов WordPress для ускорения сайта
29.01.2026
Как избежать проблем с перемещением менеджера медиа в WordPress
29.12.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше