Как создать простой шорткод для вывода данных в WordPress

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

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

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

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

  • Возможность повторного использования кода в разных местах без дублирования;
  • Упрощение работы редакторов и пользователей сайта, не знакомых с программированием;
  • Гибкость в выводе динамического контента, например, последних новостей, пользовательских данных и пр.;
  • Улучшение структуры темы или плагина за счёт отделения логики от контента.

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

Начнём с самого простого — выведем на страницу текущую дату с помощью шорткода. Для этого нужно зарегистрировать функцию-обработчик и связать её с уникальным именем шорткода.

Добавьте следующий код в файл functions.php вашей темы или в файл плагина:

function wpmanager_show_current_date() {
    return date('d.m.Y');
}
add_shortcode('wpmanager_current_date', 'wpmanager_show_current_date');

Теперь в любом месте контента можно написать [wpmanager_current_date], и WordPress выведет текущую дату в формате День.Месяц.Год.

Объяснение кода

Функция wpmanager_show_current_date возвращает строку с датой. Важно, чтобы функция возвращала, а не выводила данные (т.е. использовала return, а не echo), иначе шорткод не сработает правильно. Затем через add_shortcode регистрируем имя шорткода и связываем его с функцией.

Добавление параметров в шорткод для гибкости

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

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

Теперь можно использовать шорткод с параметром format:

[wpmanager_date format="Y-m-d"]

Это выведет дату в формате Год-Месяц-День.

Пояснения

Функция shortcode_atts объединяет переданные параметры с параметрами по умолчанию, что упрощает работу с атрибутами и защищает от ошибок. Таким образом, если параметр format не указан, будет использован формат по умолчанию.

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

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

function wpmanager_latest_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => ''
        ), $atts, 'wpmanager_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>';
    }
    $output .= '</ul>';
    wp_reset_postdata();

    return $output;
}
add_shortcode('wpmanager_latest_posts', 'wpmanager_latest_posts_shortcode');

Использование:

  • [wpmanager_latest_posts] — выведет 5 последних записей;
  • [wpmanager_latest_posts count="3"] — выведет 3 последние записи;
  • [wpmanager_latest_posts count="10" category="news"] — выведет 10 последних записей из категории «news».

Разбор кода

Мы создали WP_Query с параметрами из атрибутов шорткода. Перед использованием атрибуты очищаются функцией sanitize_text_field и кастуются к нужным типам для безопасности и корректности. Результат формируется в виде HTML-списка с ссылками на записи.

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

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

  • Безопасность: всегда фильтруйте и проверяйте входящие данные (атрибуты шорткодов), чтобы избежать XSS и других уязвимостей.
  • Возврат вместо вывода: функция шорткода должна возвращать строку, а не выводить её напрямую.
  • Оптимизация запросов: избегайте тяжелых и частых запросов к базе, используйте кэширование, если данные не меняются часто.
  • Использование префиксов: для избежания конфликтов с другими плагинами и темами используйте уникальные префиксы в названиях функций и шорткодов (например, wpmanager_).

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

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

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

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

Заключение

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

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

⭐⭐⭐⭐⭐
Как создать динамические отзывы в WordPress с помощью Expert Review
28.12.2025
WooCommerce: автоматическое изменение ставок доставки по регионам
29.06.2026
Автоматическое управление виджетами WordPress с помощью кода: практическое руководство
28.02.2026
WooCommerce: автоматическое изменение ставки НДС по регионам
26.06.2026
Автоматическое управление настройками переходов в WordPress: практическое руководство
08.04.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее