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

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

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

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

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

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

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

Регистрация шорткода через функцию add_shortcode

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

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

function wpmark_current_year_shortcode() {
    return date('Y');
}
add_shortcode('current_year', 'wpmark_current_year_shortcode');

Теперь, если в редакторе вставить [current_year], то на сайте появится текущий год.

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

Шорткоды могут принимать параметры, которые позволяют изменять вывод. Параметры передаются в функцию в виде массива.

Рассмотрим пример шорткода, создающего кнопку с настраиваемым текстом и ссылкой:

function wpmark_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'text' => 'Нажми меня',
            'url' => '#'
        ), $atts, 'wpmark_button'
    );
    return '<a href="'.esc_url($atts['url']).'" class="wpmark-button">'.esc_html($atts['text']).'</a>';
}
add_shortcode('wpmark_button', 'wpmark_button_shortcode');

Использование в контенте: [wpmark_button text="Перейти" url="https://wpmark.ru"]. Это создаст ссылку-кнопку с указанным текстом и адресом.

Расширение функциональности шорткодов

Обработка вложенного контента

Шорткоды могут обрабатывать не только параметры, но и вложенный контент. Для этого функция должна принимать второй аргумент – содержимое между открывающим и закрывающим тегами.

function wpmark_highlight_shortcode($atts, $content = null) {
    return '<span class="wpmark-highlight">'.do_shortcode($content).'</span>';
}
add_shortcode('highlight', 'wpmark_highlight_shortcode');

Использование: [highlight]Текст для выделения[/highlight]. Шорткод обернет текст в span с классом для стилизации.

Встраивание PHP-кода и безопасность

Важно понимать, что шорткоды выполняют PHP-код, поэтому нужно внимательно относиться к безопасности. Всегда используйте функции экранирования данных: esc_html(), esc_url(), wp_kses_post() и другие. Никогда не выводите пользовательский ввод без фильтрации.

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

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

Иногда нужно вывести список последних статей в любом месте сайта без виджета. Вот пример шорткода для этого:

function wpmark_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array('count' => 5), $atts, '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 class="wpmark-latest-posts">';
    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('latest_posts', 'wpmark_latest_posts_shortcode');

Вызов: [latest_posts count=3] — отобразит 3 последних поста.

Шорткод для вставки Google карты с настройками

Еще один полезный пример — вставка карты с указанием ширины, высоты и координат:

function wpmark_google_map_shortcode($atts) {
    $atts = shortcode_atts(array(
        'lat' => '55.7558',
        'lng' => '37.6173',
        'width' => '600',
        'height' => '450',
        'zoom' => 10
    ), $atts, 'google_map');
    $iframe = '<iframe width="'.esc_attr($atts['width']).'" height="'.esc_attr($atts['height']).'" '
        .'frameborder="0" style="border:0" '
        .'src="https://www.google.com/maps/embed/v1/view?key=ВАШ_КЛЮЧ_API&center='.
        esc_attr($atts['lat']).','.esc_attr($atts['lng']).'&zoom='.esc_attr($atts['zoom']).'" allowfullscreen></iframe>';
    return $iframe;
}
add_shortcode('google_map', 'wpmark_google_map_shortcode');

Замените ВАШ_КЛЮЧ_API на реальный ключ Google Maps API. Используйте в статье: [google_map lat="59.9343" lng="30.3351" width="800" height="600" zoom="12"].

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

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

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

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

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

При разработке шорткодов важно тестировать их работу на разных страницах и с разными параметрами. Используйте:

  • Включение WP_DEBUG в wp-config.php для выявления ошибок.
  • Вывод результатов через var_dump() или error_log() для отладки.
  • Проверку корректности HTML и экранирование выходных данных.

Для сложных шорткодов полезно писать модульные тесты с помощью PHPUnit и WP_Mock.

Заключение

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

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

Как избежать проблем с перенаправлением в WordPress: практические решения и примеры кода
23.03.2026
Как автоматизировать управление ролями и правами в WordPress
25.01.2026
Как удалить и заблокировать спам комментарии в WordPress
11.01.2026
Как создать автоматический импорт изображений в WordPress с помощью кода
30.03.2026
Как отключить ревизии постов в WordPress для удаления старых версий
02.03.2026