wplang.ru wordpress WP Lang

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

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

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

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

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

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

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

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

Создание шорткода начинается с написания PHP-функции, которая генерирует нужный вывод, и регистрации этой функции с помощью функции WordPress add_shortcode().

Рассмотрим пример — создадим шорткод [wplang_hello], который выводит приветствие.

function wplang_hello_shortcode() {
    return '<p>Привет, это шорткод от wplang.ru!</p>';
}
add_shortcode('wplang_hello', 'wplang_hello_shortcode');

Чтобы использовать этот шорткод, достаточно вставить [wplang_hello] в текст записи или страницы. На фронтенде появится текст «Привет, это шорткод от wplang.ru!».

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

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

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

function wplang_hello_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'wplang_hello'
    );
    return '<p>Привет, ' . esc_html($atts['name']) . '! Это шорткод от wplang.ru.</p>';
}
add_shortcode('wplang_hello', 'wplang_hello_shortcode');

Теперь при вставке [wplang_hello name="Алексей"] вывод будет: Привет, Алексей! Это шорткод от wplang.ru.

Использование shortcode_atts гарантирует безопасное и удобное получение параметров с дефолтными значениями.

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

Частая задача — вывести список последних записей блога в любом месте сайта. Сделаем шорткод [wplang_recent_posts count="5"], который будет показывать последние count записей с их миниатюрами и ссылками.

function wplang_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 3
    ), $atts, 'wplang_recent_posts');

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

    if (!$query->have_posts()) {
        return '<p>Записей не найдено.</p>';
    }

    $output = '<ul class="wplang-recent-posts">';

    while ($query->have_posts()) {
        $query->the_post();
        $thumb = get_the_post_thumbnail(get_the_ID(), 'thumbnail');
        $title = get_the_title();
        $permalink = get_permalink();

        $output .= '<li><a href="' . esc_url($permalink) . '">' . $thumb . esc_html($title) . '</a></li>';
    }

    $output .= '</ul>';

    wp_reset_postdata();

    return $output;
}
add_shortcode('wplang_recent_posts', 'wplang_recent_posts_shortcode');

Используя этот шорткод, вы можете легко вставить динамический список постов в любую страницу, например: [wplang_recent_posts count="5"].

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

Экранирование вывода

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

Минимизация нагрузки

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

Отладка и тестирование

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

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

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

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

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

×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙