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

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

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

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

Преимущества использования шорткодов:

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

Всё это делает шорткоды незаменимым инструментом для кастомизации сайта без внесения изменений в шаблоны.

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

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

Пример простого шорткода, который выводит приветствие:

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

Теперь, если добавить в редактор WordPress текст [wpreset_greeting], на сайте появится приветствие.

Передача параметров в шорткод

Одно из ключевых преимуществ шорткодов — возможность принимать параметры. Например, сделаем шорткод с параметром name:

function wpreset_greeting_shortcode($atts) {
    $atts = shortcode_atts(array(
        'name' => 'Гость',
    ), $atts, 'wpreset_greeting');
    return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('wpreset_greeting', 'wpreset_greeting_shortcode');

Теперь вызов [wpreset_greeting name="Алексей"] отобразит "Привет, Алексей!".

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

Давайте создадим шорткод, который выведет 5 последних постов с заголовками и ссылками. Такой шорткод полезен для размещения блока новостей или подборки статей в любом месте сайта.

function wpreset_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5,
    ), $atts, 'wpreset_latest_posts');

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

    $query = new WP_Query($query_args);
    if (!$query->have_posts()) {
        return '<p>Нет доступных записей.</p>';
    }

    $output = '<ul>';
    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('wpreset_latest_posts', 'wpreset_latest_posts_shortcode');

Вызов [wpreset_latest_posts count="3"] выведет три последних поста. Если параметр count не указан, по умолчанию будет пять.

Безопасность и очистка вывода

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

Использование шорткодов внутри PHP-кода и виджетов

Иногда нужно вставить шорткод не в редактор, а прямо в шаблон или виджет. Для этого используйте функцию do_shortcode:

echo do_shortcode('[wpreset_latest_posts count="4"]');

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

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

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

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

Но для уникальных задач и оптимизации лучше создавать свои шорткоды вручную с учетом специфики сайта.

Как отлаживать шорткоды

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

  • Использовать error_log для вывода отладочной информации.
  • Проверять возвращаемое значение функции — шорткод должен возвращать, а не выводить контент.
  • Тестировать на разных устройствах и в разных редакторах.

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

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

function wpreset_current_datetime_shortcode($atts) {
    $atts = shortcode_atts(array(
        'format' => 'd.m.Y H:i:s',
    ), $atts, 'wpreset_current_datetime');
    return date($atts['format']);
}
add_shortcode('wpreset_current_datetime', 'wpreset_current_datetime_shortcode');

Пример использования: [wpreset_current_datetime format="j F Y, H:i"] выведет дату в формате "1 июня 2024, 14:30".

Заключение

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

Как автоматически удалять старые записи в WordPress через шорткод
11.04.2026
Как создать и использовать собственные REST API эндпоинты в WordPress
03.04.2026
Как автоматически отключать подписки в WordPress при удалении пользователя
09.03.2026
Как создать и использовать собственные типы записей (Custom Post Types) в WordPress
22.11.2025
Автоматическое удаление неактивных пользователей в WordPress: настройка и примеры кода
29.04.2026