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

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

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

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

Например, шорткод [wpmarket_product id=123] может выводить информацию о товаре с ID 123, а с другим параметром — данные другого товара. Это экономит время и позволяет централизованно управлять выводом информации.

Динамические шорткоды востребованы для:

  • Вывода кастомных данных (например, последние новости, товары, отзывы).
  • Создания многоразовых блоков с изменяемым содержимым.
  • Интеграции с внешними API и динамическим обновлением информации.

Создаем простой динамический шорткод — пример с выводом приветствия

Начнем с базового примера. Мы создадим шорткод [wpmarket_greeting name="Имя"], который будет приветствовать пользователя по имени.

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

function wpmarket_dynamic_greeting_shortcode($atts) {
    // Задаем значения по умолчанию
    $atts = shortcode_atts(
        array('name' => 'гость'),
        $atts,
        'wpmarket_greeting'
    );

    // Формируем вывод
    return 'Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на наш сайт.';
}
add_shortcode('wpmarket_greeting', 'wpmarket_dynamic_greeting_shortcode');

Теперь в редакторе WordPress вы можете использовать шорткод [wpmarket_greeting name="Алексей"], и на странице выведется: Привет, Алексей! Добро пожаловать на наш сайт.

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

Предположим, у вас есть пользовательский тип записи product, и вы хотите через шорткод выводить последние товары с возможностью указать количество.

Рассмотрим пример шорткода [wpmarket_latest_products count=3]:

function wpmarket_latest_products_shortcode($atts) {
    $atts = shortcode_atts(
        array('count' => 5),
        $atts,
        'wpmarket_latest_products'
    );

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

    $query = new WP_Query($args);
    if (!$query->have_posts()) {
        return '<p>Товары не найдены.</p>';
    }

    $output = '<ul class="wpmarket-products-list">';
    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('wpmarket_latest_products', 'wpmarket_latest_products_shortcode');

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

Обработка сложных параметров и безопасность

Важно помнить о безопасности при работе с шорткодами. Все входные данные необходимо валидировать и экранировать. В примерах выше мы использовали функцию esc_html() для вывода текста и кастили количество в целое число.

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

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

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

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

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

Однако, если нужно что-то специфичное — лучше писать свои шорткоды, как показано выше.

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

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

  • Всегда используйте shortcode_atts для обработки параметров.
  • Валидация и экранирование входных данных обязательна.
  • Не выводите напрямую данные из базы без фильтрации.
  • Используйте WP_Query для получения записей, а затем wp_reset_postdata() после цикла.
  • Продумывайте кэширование, если данные сложно генерируются и не меняются часто.

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

Как создать автоматическое отображение связанных постов в WordPress
20.02.2026
Как отключить отзывы на одиночных страницах WordPress
28.03.2026
Как автоматически отключать неиспользуемые вариации товаров в WooCommerce
03.06.2026
Автоматизация управления пользовательскими метаданными (user meta) в WordPress с помощью кода
07.04.2026
Как защитить WordPress от bruteforce-атак: практические методы и примеры кода
17.02.2026