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

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

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

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

Главные преимущества шорткодов:

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

Например, шорткод [gallery] выводит галерею изображений, а [contact-form-7] — форму обратной связи. Но что если вам нужна своя уникальная функциональность? Для этого создаются пользовательские шорткоды.

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

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

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

function wpconfig_current_date_shortcode() {
    return date('d.m.Y');
}
add_shortcode('wpconfig_date', 'wpconfig_current_date_shortcode');

Теперь, вставив в редактор запись [wpconfig_date], вы получите вывод сегодняшней даты.

Обратите внимание, что имя функции мы начинаем с префикса wpconfig_, чтобы избежать конфликтов с другими плагинами или темами.

Параметры шорткода

Шорткоды могут принимать параметры, которые позволяют изменять их поведение. Параметры передаются в виде атрибутов в квадратных скобках, например: [wpconfig_date format="Y-m-d"].

Чтобы обработать атрибуты, используется функция shortcode_atts(). Пример расширенного шорткода с параметром формата даты:

function wpconfig_current_date_shortcode($atts) {
    $atts = shortcode_atts(
        array('format' => 'd.m.Y'),
        $atts,
        'wpconfig_date'
    );
    return date($atts['format']);
}
add_shortcode('wpconfig_date', 'wpconfig_current_date_shortcode');

Теперь можно использовать разные форматы даты, например, [wpconfig_date format="l, d F Y"].

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

1. Шорткод для вывода списка последних записей с кастомным оформлением

Допустим, нужно вывести на страницу список из 5 последних записей с заголовками и ссылками. Вот пример шорткода:

function wpconfig_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5
    ), $atts, 'wpconfig_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="wpconfig-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('wpconfig_latest_posts', 'wpconfig_latest_posts_shortcode');

В редакторе можно вставить: [wpconfig_latest_posts count="3"], чтобы вывести 3 последние записи.

2. Шорткод для отображения пользовательского сообщения с HTML и стилями

Можно сделать шорткод, который выводит блок с сообщением и индивидуальным цветом фона и текста:

function wpconfig_alert_box_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'bgcolor' => '#ffdddd',
        'color' => '#900000'
    ), $atts, 'wpconfig_alert');

    $style = 'background-color: '.esc_attr($atts['bgcolor']).'; color: '.esc_attr($atts['color']).'; padding: 10px; border-radius: 5px;';

    return '<div style="'. $style .'">' . do_shortcode($content) . '</div>';
}
add_shortcode('wpconfig_alert', 'wpconfig_alert_box_shortcode');

Использование в редакторе: [wpconfig_alert bgcolor="#cceeff" color="#003366"]Важное сообщение![/wpconfig_alert].

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

При разработке шорткодов важно проверять корректность вывода и отсутствие ошибок PHP. Для этого:

  • Используйте локальную копию сайта или staging-сервер.
  • Включайте режим отладки WordPress (WP_DEBUG).
  • Пишите код с проверками и безопасностью (экранируйте вывод).
  • Тестируйте разные варианты параметров и вложенный контент.

Если шорткод не работает, проверьте, зарегистрирован ли он через add_shortcode(), и нет ли конфликтов имён.

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

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

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

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

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

Создание собственных шорткодов — мощный инструмент для кастомизации WordPress сайта. Правильно написанный шорткод:

  • Облегчает добавление контента без правок шаблона.
  • Повышает удобство для контент-менеджеров.
  • Обеспечивает безопасность и контроль над выводом.

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

Как добавить многоязычность в WordPress без плагинов: пошаговое руководство
14.11.2025
Как удалить и изменить авторские права в WordPress: полное руководство
11.11.2025
Как удалить и заблокировать плагин в WordPress: практическое руководство с примерами
26.01.2026
Как создать собственный тип записи (Custom Post Type) в WordPress с примерами кода
14.01.2026
Выполнение динамических запросов в wpdb WordPress: практические примеры и безопасность
02.02.2026