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

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

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

Шорткод — это упрощенный тег в квадратных скобках, например [wpmagazin_alert], который WordPress заменяет на определенный контент или результат выполнения функции. Используя шорткоды, можно быстро вставлять формы, галереи, кнопки и другие элементы без написания HTML или PHP в каждом посте.

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

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

Теперь разберемся, как создать свой шорткод и использовать его на сайте.

Создаем простой шорткод с параметрами

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

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpmagazin_hello_shortcode($atts) {
    // Задаем атрибуты по умолчанию
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
        ), $atts, 'wpmagazin_hello'
    );
    return '<div style="padding:10px; background:#f0f0f0; border:1px solid #ccc;">Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на сайт.</div>';
}
add_shortcode('wpmagazin_hello', 'wpmagazin_hello_shortcode');

Теперь в записи или на странице можно вставить шорткод [wpmagazin_hello name="Алексей"], и он выведет персональное приветствие.

Объяснение кода

Функция wpmagazin_hello_shortcode принимает массив атрибутов, задает значение по умолчанию для name и возвращает HTML с приветствием, безопасно экранируя входящие данные. Хук add_shortcode регистрирует шорткод с именем wpmagazin_hello.

Шорткод с выводом списка последних записей

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

function wpmagazin_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => '',
        ), $atts, 'wpmagazin_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('wpmagazin_latest_posts', 'wpmagazin_latest_posts_shortcode');

Пример использования: [wpmagazin_latest_posts count="3" category="novosti"] выведет 3 последние записи из категории «новости».

Разбор и советы

Используем класс WP_Query для гибкой выборки. Обратите внимание на экранирование входящих параметров и вызов wp_reset_postdata() для восстановления глобальной переменной после запроса.

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

Создадим шорткод, который выводит кнопку с текстом и ссылкой, задаваемыми через атрибуты. Это удобно для акций и промо-баннеров.

function wpmagazin_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'text' => 'Нажми меня',
            'url' => '#',
            'color' => '#0073aa',
        ), $atts, 'wpmagazin_button'
    );

    $text = esc_html($atts['text']);
    $url = esc_url($atts['url']);
    $color = sanitize_hex_color($atts['color']);

    return '<a href="' . $url . '" style="display:inline-block; padding:10px 20px; background:' . $color . '; color:#fff; text-decoration:none; border-radius:4px;">' . $text . '</a>';
}
add_shortcode('wpmagazin_button', 'wpmagazin_button_shortcode');

Пример вызова: [wpmagazin_button text="Купить сейчас" url="https://example.com/shop" color="#e74c3c"]

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

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

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

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

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

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

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

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

Как удалить и заблокировать неиспользуемые регистрации в WordPress с форумами
29.04.2026
Как удалить неиспользуемые таксономии в WordPress
22.02.2026
WooCommerce: автоматическое удаление отменённых заказов для оптимизации базы данных
05.05.2026
Как изменить URL автора в WordPress без изменения ссылок постов
05.12.2025
WooCommerce: автоматическая очистка корзины и отслеживание брошенных заказов
23.04.2026