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

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

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

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

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

Типичные задачи, решаемые с помощью шорткодов:

  • Вставка галерей, видео или кастомных блоков
  • Отображение динамических данных, например, последних записей или пользовательской информации
  • Добавление форм обратной связи

Как создать простой шорткод в WordPress

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

function wplink_hello_shortcode() {
    return '<p>Привет, это шорткод wplink!</p>';
}
add_shortcode('wplink_hello', 'wplink_hello_shortcode');

Добавьте этот код в файл functions.php вашей темы или в отдельный плагин. После этого в редакторе WordPress вы сможете использовать шорткод [wplink_hello], и он выведет указанное сообщение.

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

Функция wplink_hello_shortcode возвращает HTML-строку, которую WordPress вставит на место шорткода. Обратите внимание, что лучше возвращать значения, а не сразу выводить их через echo.

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

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

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

Пример использования в контенте: [wplink_greet name="Иван"]. Если параметр не указан, будет использовано значение по умолчанию — «Гость».

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

Обязательно используйте функцию esc_html() или аналогичные для экранирования пользовательских данных, чтобы предотвратить XSS-уязвимости.

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

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

function wplink_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => '',
        ), $atts, 'wplink_latest_posts'
    );

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

    if (!empty($atts['category'])) {
        $args['category_name'] = sanitize_text_field($atts['category']);
    }

    $query = new WP_Query($args);
    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('wplink_latest_posts', 'wplink_latest_posts_shortcode');

Пример использования: [wplink_latest_posts count="3" category="novosti"] выведет 3 последние записи из категории «novosti».

Как зарегистрировать шорткод, чтобы он работал в виджетах и других местах

По умолчанию шорткоды работают в редакторе контента. Чтобы использовать их в виджетах текстового типа или в шаблонах, необходимо дополнительно вызвать функцию do_shortcode().

Например, в PHP-шаблоне можно вывести шорткод так:

echo do_shortcode('[wplink_hello]');

Для виджетов с текстом убедитесь, что в настройках включена поддержка шорткодов, либо добавьте в functions.php следующий код:

add_filter('widget_text', 'do_shortcode');

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

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

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

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

Советы по созданию эффективных шорткодов

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

  • Используйте уникальные префиксы в названиях функций и шорткодов, например, wplink_, чтобы избежать конфликтов с другими плагинами.
  • Всегда экранируйте входящие данные с помощью функций esc_html(), sanitize_text_field() и других.
  • Возвращайте результат из функции, а не используйте echo.
  • Документируйте параметры шорткода и давайте понятные имена.
  • Тестируйте шорткод в различных условиях и на разных типах контента.
Автопостинг в WordPress: как настроить автоматический публикации
22.11.2025
Как удалить или изменить заголовок страницы в WordPress
30.11.2025
Как создать собственный шорткод в WordPress
05.11.2025
Автоматический бэкап WordPress: лучшие плагины и примеры кода
25.11.2025
Как удалить версию WordPress из URL JS и CSS
13.12.2025