WPBit

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

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

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

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

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

В этой статье мы рассмотрим, как создать шорткод на примере, а также разберем, как передавать параметры и обрабатывать их.

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

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

Рассмотрим пример создания простого шорткода, который выводит приветствие с именем пользователя:

function wpbit_hello_shortcode($atts) {
    $atts = shortcode_atts(
        array('name' => 'Гость'),
        $atts,
        'hello'
    );
    return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('hello', 'wpbit_hello_shortcode');

Теперь в любом месте контента можно использовать [hello name="Иван"], и будет выведено: Привет, Иван!

Если параметр name не передан, по умолчанию будет использовано "Гость".

Передача и обработка параметров в шорткодах

Параметры позволяют настраивать вывод шорткода динамически. В функции обработчике используйте shortcode_atts() для объединения переданных атрибутов с дефолтными значениями. Это гарантирует корректную работу даже если некоторые параметры не заданы.

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

function wpbit_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(
        array('count' => 5),
        $atts,
        '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>';
    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('recent_posts', 'wpbit_recent_posts_shortcode');

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

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

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

  • Показать текущую дату и время: шорткод, который выводит дату в нужном формате.
  • Кнопка с кастомной ссылкой: шорткод, генерирующий кнопку с параметрами цвета и URL.
  • Отображение произвольного поля: шорткод для показа мета-данных записи.
  • Вставка Google карты: с передачей адреса через параметр.

Пример шорткода кнопки с параметрами:

function wpbit_button_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url' => '#',
        'text' => 'Нажми меня',
        'color' => '#0073aa'
    ), $atts, 'button');

    $url = esc_url($atts['url']);
    $text = esc_html($atts['text']);
    $color = esc_attr($atts['color']);

    return '<a href="' . $url . '" style="display:inline-block; padding:10px 20px; background-color:' . $color . '; color:#fff; text-decoration:none; border-radius:4px;">' . $text . '</a>';
}
add_shortcode('button', 'wpbit_button_shortcode');

Используйте [button url="https://wpbit.ru" text="Перейти на WPBit" color="#005f73"] для вывода кнопки.

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

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

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

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

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

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

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

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

×

Увеличьте продажи!

Скидка на
My Popup!

-15%
плагин для WordPress

Успей купить ⋙