wpmake.ru wordpress WPMake

Создать свой шорткод в WordPress: пошаговое руководство

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

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

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

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

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

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

Пример базового шорткода:

function wpmake_hello_shortcode($atts) {
    return 'Привет, это мой первый шорткод!';
}
add_shortcode('wpmake_hello', 'wpmake_hello_shortcode');

Теперь в записи можно вставить [wpmake_hello], и на сайте отобразится текст «Привет, это мой первый шорткод!».

Обработка атрибутов шорткода

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

function wpmake_greeting_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'name' => 'Гость',
            'time' => 'день'
        ), $atts, 'wpmake_greeting'
    );
    return 'Добрый ' . esc_html($atts['time']) . ', ' . esc_html($atts['name']) . '!';
}
add_shortcode('wpmake_greeting', 'wpmake_greeting_shortcode');

Использование: [wpmake_greeting name="Андрей" time="вечер"] выведет «Добрый вечер, Андрей!».

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

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

function wpmake_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'count' => 5,
            'category' => ''
        ), $atts, 'wpmake_recent_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 class="wpmake-recent-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('wpmake_recent_posts', 'wpmake_recent_posts_shortcode');

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

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

При создании шорткодов важно правильно фильтровать и экранировать все входящие данные. В примерах выше мы использовали esc_html для вывода текста и sanitize_text_field для атрибутов.

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

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

function wpmake_cached_content_shortcode() {
    $cache_key = 'wpmake_cached_shortcode_output';
    $output = get_transient($cache_key);
    if ($output === false) {
        // Дорогая операция
        $output = 'Текущая дата и время: ' . date('Y-m-d H:i:s');
        set_transient($cache_key, $output, 3600); // Кеш на 1 час
    }
    return $output;
}
add_shortcode('wpmake_cached_time', 'wpmake_cached_content_shortcode');

Такой подход уменьшит нагрузку на сервер при частых вызовах шорткода.

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

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

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

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

×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙