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

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

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

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

Преимущества своих шорткодов:

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

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

Для создания шорткода нужно использовать функцию add_shortcode. Она принимает два аргумента: имя шорткода и callback-функцию, которая формирует вывод.

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

Теперь, если в редакторе записей вставить [wplancer_hello], на странице появится текст «Привет, это мой первый шорткод!».

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

Шорткод может принимать параметры в виде атрибутов. Для их обработки используйте функцию shortcode_atts для задания значений по умолчанию и получения массива параметров.

function wplancer_greeting_shortcode( $atts ) {
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
            'time' => 'день'
        ), $atts, 'wplancer_greeting'
    );
    return '<p>Добрый ' . esc_html($atts['time']) . ', ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode( 'wplancer_greeting', 'wplancer_greeting_shortcode' );

Теперь [wplancer_greeting name="Иван" time="вечер"] выведет «Добрый вечер, Иван!».

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

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

function wplancer_recent_posts_shortcode( $atts ) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => ''
        ), $atts, 'wplancer_recent_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>';
    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( 'wplancer_recent_posts', 'wplancer_recent_posts_shortcode' );

Пример использования:

  • [wplancer_recent_posts count="3"] — последние 3 записи;
  • [wplancer_recent_posts count="10" category="novosti"] — 10 последних записей из категории «новости».

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

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

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

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

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

При создании шорткодов важно контролировать несколько моментов:

  • Используйте esc_html() и esc_url() для вывода данных, чтобы избежать XSS-уязвимостей.
  • Проверяйте корректность переданных атрибутов, задавайте значения по умолчанию.
  • Если шорткод выводит сложный HTML, старайтесь формировать его в переменной и возвращать, а не выводить напрямую.
  • Для отладки используйте error_log() или плагины отладки, например Debug Bar.

Заключение

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

Как автоматизировать создание и удаление чистокодов в WordPress
17.02.2026
Как автоматически удалять товар из корзины WooCommerce при установке количества в 0
26.04.2026
Автоматический импорт постов из внешнего источника в WordPress
07.04.2026
Как создать автоматическую оптимизацию изображений в WordPress
21.02.2026
Как создать адаптивный слайдер в WordPress с нуля
30.11.2025