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

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

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

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

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

Рассмотрим, как это сделать на практике.

Создание простого шорткода: пример от wpdream

Начнём с простого примера. Допустим, вы хотите создать шорткод [wpdream_hello], который будет выводить приветственное сообщение.

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

function wpdream_hello_shortcode() {
    return '<p>Привет от wpdream! Это ваш первый шорткод.</p>';
}
add_shortcode('wpdream_hello', 'wpdream_hello_shortcode');

Теперь, если вставить в редактор WordPress [wpdream_hello], на странице отобразится сообщение "Привет от wpdream! Это ваш первый шорткод."

Пояснение к коду

  • wpdream_hello_shortcode — функция, которая возвращает HTML-код для шорткода.
  • add_shortcode — встроенная функция WordPress, регистрирующая шорткод с указанным именем и функцией обработки.

Шорткод с параметрами: как передавать аргументы

Очень часто нужно создавать шорткоды, которые принимают параметры, чтобы изменять вывод в зависимости от настроек. Рассмотрим пример шорткода [wpdream_greeting name="Иван"], который будет выводить персональное приветствие.

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

При использовании [wpdream_greeting name="Алексей"] на сайте вы получите "Привет, Алексей! Добро пожаловать на wpdream.ru." Если параметр не передан, по умолчанию будет "Гость".

Разбор параметров

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

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

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

function wpdream_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
        ), $atts, 'wpdream_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('wpdream_latest_posts', 'wpdream_latest_posts_shortcode');

Использование: [wpdream_latest_posts count="3"] выведет список из 3 последних опубликованных записей блога.

Объяснение

Здесь мы создаём новый WP_Query для получения последних постов и формируем HTML-список с ссылками на них. Не забудьте вызвать wp_reset_postdata() после цикла, чтобы не нарушить глобальный запрос WordPress.

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

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

Например, если ваш шорткод выводит текст, в котором могут быть другие шорткоды, примените do_shortcode к этому тексту перед выводом.

Также важно помнить про безопасность. Всегда экранируйте пользовательские данные, используя функции esc_html, esc_attr и др., чтобы избежать XSS-уязвимостей.

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

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

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

Но если нужны уникальные решения, создание своих шорткодов — лучший путь.

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

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

echo do_shortcode('[wpdream_hello]');

Это полезно, если нужно вставить шорткод в шаблон темы или в вывод виджета.

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

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

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

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

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

Как удалить дубликаты постов в WordPress: практическое руководство с примерами
01.03.2026
Как добавить динамические поля в WordPress без плагинов
14.03.2026
Автоматизация обновления контента в WordPress с WPRemark
24.03.2026
Как избежать конфликтов плагинов в WordPress: практические рекомендации и примеры кода
11.12.2025
Как изменить авторские права в футере WordPress без плагина
16.02.2026