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

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

Что такое шорткод в WordPress и зачем создавать собственные?

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

  • Интегрировать уникальный функционал без постоянного редактирования шаблонов
  • Упрощать работу контент-менеджерам, которые могут вставлять сложный код простым тегом
  • Повысить переиспользуемость и удобство поддержки кода

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

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

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

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

    return 'Привет, ' . esc_html($attributes['name']) . '!';
}
add_shortcode('wpkit_hello', 'wpkit_hello_shortcode');

Теперь в любом посте можно написать [wpkit_hello name="Иван"], и он выведет Привет, Иван!.

Обратите внимание на использование функции shortcode_atts — она позволяет задать значения по умолчанию для атрибутов шорткода, а также на экранирование вывода через esc_html для безопасности.

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

1. Шорткод для вывода текущей даты с кастомным форматом

Очень часто нужно вставить дату в определённом формате. Создадим шорткод [wpkit_date format="d.m.Y"]:

function wpkit_date_shortcode($atts) {
    $atts = shortcode_atts(array(
        'format' => 'd.m.Y',
    ), $atts);
    return date($atts['format']);
}
add_shortcode('wpkit_date', 'wpkit_date_shortcode');

Теперь можно вставлять дату в любом формате, например [wpkit_date format="l, d F Y"].

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

Создадим удобный шорткод для кнопки, где можно указать ссылку и текст кнопки:

function wpkit_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url' => '#',
        'text' => 'Нажми меня',
        'class' => 'wpkit-btn',
    ), $atts);

    return '<a href="' . esc_url($atts['url']) . '" class="' . esc_attr($atts['class']) . '">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpkit_button', 'wpkit_button_shortcode');

CSS-класс wpkit-btn можно определить в стилях темы, чтобы стилизовать кнопку. Пример использования: [wpkit_button url="https://wp-kit.ru" text="Перейти на WP-Kit" class="custom-btn"].

3. Шорткод для вывода последних записей блога

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

function wpkit_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 3,
    ), $atts);

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

    if (!$query->have_posts()) {
        return '<p>Записей не найдено.</p>';
    }

    $output = '<ul class="wpkit-recent-posts">';
    while ($query->have_posts()) {
        $query->the_post();
        $output .= '<li><a href="' . esc_url(get_permalink()) . '">' . esc_html(get_the_title()) . '</a></li>';
    }
    wp_reset_postdata();
    $output .= '</ul>';

    return $output;
}
add_shortcode('wpkit_recent_posts', 'wpkit_recent_posts_shortcode');

Используйте [wpkit_recent_posts count="5"], чтобы вывести 5 последних записей.

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

Шорткоды обычно вставляют в содержимое постов, но иногда требуется вывести их в PHP-шаблонах. Для этого используется функция do_shortcode. Например:

echo do_shortcode('[wpkit_hello name="Анна"]');

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

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

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

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

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

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

При разработке шорткодов обязательно учитывайте безопасность и производительность:

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

Поддерживайте код читаемым и документированным.

Итоги

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

Как сделать отложенный запуск задач в WordPress с помощью WP-Cron
13.12.2025
Как проверить и исправить проблемы с переадресацией в WordPress без плагинов
09.06.2026
Как исправить ошибку недоступности WooCommerce AJAX корзины после обновления
20.06.2026
Как создать автоматический импорт контента в WordPress
29.01.2026
Как добавить уникальные типы записей в WordPress с применением кода
12.01.2026