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

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

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

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

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

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

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

function wptem_show_current_year() {
    return date('Y');
}
add_shortcode('wptem_year', 'wptem_show_current_year');

Теперь, если вставить в контент страницы [wptem_year], на сайте отобразится текущий год. Это удобный приём для автоматического обновления копирайта, например.

Использование атрибутов в шорткодах: расширяем функциональность

Шорткоды могут принимать параметры, которые позволяют гибко настраивать вывод. Например, создадим шорткод для вывода приветствия с указанием имени пользователя:

function wptem_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'wptem_greeting'
    );
    return 'Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wptem.ru.';
}
add_shortcode('wptem_greeting', 'wptem_greeting_shortcode');

Использование: [wptem_greeting name="Алексей"]. Такой подход позволяет создавать универсальные шорткоды с параметрами под разные нужды.

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

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

function wptem_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => '',
        ),
        $atts,
        'wptem_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']);
    }

    $posts = get_posts($args);
    if (empty($posts)) {
        return '<p>Нет записей для отображения.</p>';
    }

    $output = '<ul class="wptem-latest-posts">';
    foreach ($posts as $post) {
        $title = esc_html(get_the_title($post));
        $link = esc_url(get_permalink($post));
        $output .= "<li><a href=\"$link\">$title</a></li>";
    }
    $output .= '</ul>';

    return $output;
}
add_shortcode('wptem_latest_posts', 'wptem_latest_posts_shortcode');

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

Рекомендации по безопасности при создании шорткодов

При создании шорткодов необходимо обязательно обезопасить вывод, чтобы избежать XSS-уязвимостей и других проблем:

  • Используйте функции esc_html(), esc_attr(), esc_url() для экранирования вывода.
  • Очистите входящие атрибуты через sanitize_text_field(), intval() и другие функции валидации.
  • Не выводите напрямую пользовательские данные без проверки.

Эти простые правила помогут защитить сайт и сохранить стабильность работы шорткодов.

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

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

  • Shortcoder — позволяет создавать собственные шорткоды с HTML, JavaScript и PHP-фрагментами.
  • WP Shortcode by MyThemeShop — набор готовых шорткодов с настройками через визуальный редактор.
  • Shortcodes Ultimate — мощный плагин с десятками готовых элементов и возможностью расширения.

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

Как правильно подключить шорткод: размещение кода и оптимизация

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

Также полезно оборачивать код функций в проверки, чтобы избежать ошибок:

if (!function_exists('wptem_show_current_year')) {
    function wptem_show_current_year() {
        return date('Y');
    }
    add_shortcode('wptem_year', 'wptem_show_current_year');
}

Это предотвращает конфликт с другими плагинами или темами, которые могут содержать похожие функции.

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

Как сделать динамические таблицы в WordPress без плагинов
09.03.2026
Как использовать хуки для отслеживания пользовательских действий в WordPress
23.03.2026
Автоматическое отменение заказов в WooCommerce после неудачной оплаты
23.04.2026
Как использовать REST API WordPress для создания нестандартных запросов
30.12.2025
Как создать автоматические отзывы с помощью WPRemark в WordPress
16.04.2026