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

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

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

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

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

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

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

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

Рассмотрим пример создания простого шорткода [wp5_hello], который выводит приветственное сообщение.

function wp5_hello_shortcode() {
    return '<div>Привет, это мой первый шорткод на wp5.ru!</div>';
}
add_shortcode('wp5_hello', 'wp5_hello_shortcode');

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

Советы по именованию функций и шорткодов

Чтобы избежать конфликтов с другими плагинами и темами, используйте уникальные префиксы, например wp5_ — это поможет вашей функции и шорткоду быть уникальными.

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

Создание шорткода с параметрами

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

function wp5_hello_shortcode($atts) {
    $atts = shortcode_atts( array(
        'name' => 'гость',
    ), $atts, 'wp5_hello' );

    return '<div>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wp5.ru.</div>';
}
add_shortcode('wp5_hello', 'wp5_hello_shortcode');

Теперь, вставив в контент [wp5_hello name="Иван"], вы получите сообщение: «Привет, Иван! Добро пожаловать на wp5.ru.»

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

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

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

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

Рассмотрим более сложный пример: шорткод, который выводит список последних постов определённой категории. Такой функционал бывает полезен для вставки блоков похожих материалов или избранных записей.

function wp5_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'category' => '',
        'posts' => 5,
    ), $atts, 'wp5_latest_posts');

    $args = array(
        'posts_per_page' => intval($atts['posts']),
        'category_name' => sanitize_text_field($atts['category']),
        'post_status' => 'publish',
    );

    $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>';
    }
    $output .= '</ul>';
    wp_reset_postdata();

    return $output;
}
add_shortcode('wp5_latest_posts', 'wp5_latest_posts_shortcode');

Использование: [wp5_latest_posts category="novosti" posts="3"] выведет 3 последних поста из категории «новости».

Оптимизация и кеширование

Если ваш шорткод выполняет сложные запросы или формирует большой объём контента, стоит подумать о кешировании результата. Для этого можно использовать транзиенты WordPress или внешние кеширующие решения.

Это поможет снизить нагрузку на сервер и ускорить загрузку страниц.

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

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

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

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

Резюме и лучшие практики

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

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

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

Как сделать автоматическое удаление спам комментариев в WordPress
28.12.2025
Как правильно кэшировать данные в WordPress для ускорения сайта
31.12.2025
Как удалить неиспользуемые изображения в WordPress: автоматический подход
31.01.2026
Как создать собственный шорткод в WordPress с примером кода
05.11.2025
Как создать автоматический заголовок для постов WordPress
28.02.2026