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

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

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

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

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

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

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

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

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

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

function wpbloger_hello_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'гость',
        ), $atts, 'hello');
    return 'Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wp-bloger.ru';
}
add_shortcode('hello', 'wpbloger_hello_shortcode');

В редакторе WordPress вы сможете использовать этот шорткод так: [hello name="Иван"], и получите: Привет, Иван! Добро пожаловать на wp-bloger.ru

Разбор кода

Мы создаём функцию wpbloger_hello_shortcode, которая принимает параметры шорткода в массиве $atts. С помощью shortcode_atts устанавливаем значения по умолчанию. Затем возвращаем строку с приветствием, экранируя имя пользователя для безопасности.

После этого регистрируем шорткод с именем hello, который связывается с нашей функцией.

Создание более сложного шорткода с параметрами и HTML-разметкой

Давайте усложним пример и создадим шорткод, который выводит список последних публикаций с настраиваемым количеством элементов.

function wpbloger_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
        ), $atts, 'latest_posts');

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

    $query = new WP_Query($query_args);
    if (!$query->have_posts()) {
        return '<p>Публикации не найдены.</p>';
    }

    $output = '<ul class="wpbloger-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', 'wpbloger_latest_posts_shortcode');

Теперь в любом месте сайта можно вставить [latest_posts count="3"], чтобы вывести список из трех последних постов.

Разбор и советы

Используем класс WP_Query для выборки постов, что даёт гибкость в формировании запроса. Обязательно вызываем wp_reset_postdata() после цикла, чтобы не повлиять на основной запрос страницы.

Рекомендуется добавлять CSS-классы к выводимым элементам для удобной стилизации в вашей теме.

Как добавить стили и скрипты для шорткодов

Иногда для работы шорткода нужны собственные CSS или JS файлы. Чтобы правильно подключить их, используйте хуки WordPress.

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

function wpbloger_enqueue_shortcode_assets() {
    // Подключаем CSS
    wp_enqueue_style('wpbloger-shortcode-style', get_template_directory_uri() . '/css/wpbloger-shortcode.css');

    // Подключаем JS
    wp_enqueue_script('wpbloger-shortcode-script', get_template_directory_uri() . '/js/wpbloger-shortcode.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wpbloger_enqueue_shortcode_assets');

Обратите внимание, что пути нужно корректировать в зависимости от расположения файлов. Если вы разрабатываете плагин, используйте plugin_dir_url(__FILE__).

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

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

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

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

Советы по безопасности и производительности

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

  • Обязательно экранируйте входные данные через esc_html(), esc_attr() или другие функции WordPress для предотвращения XSS-атак;
  • Не выводите напрямую пользовательские данные без проверки;
  • Используйте shortcode_atts() для обработки параметров и установки значений по умолчанию;
  • Оптимизируйте запросы к базе данных, избегайте избыточных вызовов;
  • При необходимости кешируйте результат шорткода.

Следуя этим рекомендациям, ваш шорткод будет работать быстро и безопасно.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как автоматизировать удалённую публикацию в WordPress с помощью WPGPT
26.03.2026
Как быстро удалить старые вариации продуктов в WooCommerce без плагинов
09.05.2026
Как быстро удалить старые вариации продуктов в WooCommerce без плагинов
05.06.2026
Как добавить автоматическое удаление старых записей в WordPress
10.03.2026
Как изменить URL автора в WordPress без плагинов
25.01.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше