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

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

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

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

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

В основе шорткода лежит PHP-функция, которая обрабатывает атрибуты шорткода и возвращает HTML или другой контент для вывода.

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

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

function wplike_shortcode_hello($atts) {
    return '<p>Привет от wplike!</p>';
}
add_shortcode('wplike_hello', 'wplike_shortcode_hello');

После добавления этого кода в файл functions.php вашей темы или в отдельный плагин, вы можете использовать шорткод [wplike_hello] в редакторе WordPress, и он выведет строку «Привет от wplike!».

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

Обработка атрибутов шорткода

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

Пример обработки атрибутов с умолчаниями:

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

    return '<a href="'.esc_url($atts['url']).'" style="display:inline-block;padding:10px 20px;background:'.esc_attr($atts['color']).';color:#fff;text-decoration:none;border-radius:4px;">'.esc_html($atts['text']).'</a>';
}
add_shortcode('wplike_button', 'wplike_shortcode_button');

Теперь шорткод [wplike_button text="Купить" url="https://wplike.ru" color="#e74c3c"] выведет кнопку с заданным текстом, ссылкой и цветом.

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

Шорткод для вывода текущей даты

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

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

Использование: [wplike_date format="j F Y"] выведет дату в формате «1 июня 2024».

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

Выведем список последних 5 записей с ссылками, используя WP_Query:

function wplike_shortcode_latest_posts($atts) {
    $atts = shortcode_atts(array(
        'count' => 5
    ), $atts, 'wplike_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>';
    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('wplike_latest_posts', 'wplike_shortcode_latest_posts');

Шорткод: [wplike_latest_posts count="3"] вставит список из 3 последних публикаций.

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

При создании шорткодов важно учитывать безопасность. Всегда используйте функции esc_html(), esc_url() и другие для очистки входящих данных и вывода. Это предотвратит XSS-уязвимости.

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

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

Обзор плагинов для расширения шорткодов

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

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

Использование таких плагинов упрощает работу с контентом, особенно если вы не хотите или не умеете писать PHP-код.

Как добавить шорткод в виджеты и шаблоны темы

По умолчанию шорткоды работают в содержимом записей и страниц. Чтобы использовать их в текстовых виджетах, нужно добавить следующий код в functions.php:

add_filter('widget_text', 'do_shortcode');

Для вывода шорткода в шаблонах темы используйте функцию do_shortcode():

echo do_shortcode('[wplike_hello]');

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

Как добавить собственный тип постов в WordPress
13.11.2025
WooCommerce: автоматическое изменение статуса заказа по успешному платежу
12.05.2026
Как настроить отложенный запуск cron задач в WordPress без плагинов
07.02.2026
Как добавить уникальное метаполе к записям WordPress без плагинов
25.02.2026
Как добавить автоматическое удаление старых записей через cron в WordPress
31.12.2025