wpwebsite.ru wordpress WPWebSite

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

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

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

Например, шорткод [button url="https://wpwebsite.ru" text="Перейти на сайт"] выведет кнопку с указанным текстом и ссылкой. Параметры url и text делают шорткод универсальным и настраиваемым.

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

Как зарегистрировать шорткод с параметрами: пример кода для wpwebsite.ru

В WordPress шорткоды создаются через функцию add_shortcode, которая принимает имя шорткода и callback-функцию для вывода. Чтобы добавить параметры, callback-функция принимает массив атрибутов.

Ниже пример простого шорткода с параметрами для кнопки:

function wpwebsite_button_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'url' => '#',
            'text' => 'Кнопка',
            'color' => 'blue'
        ), $atts, 'wpwebsite_button'
    );

    return '<a href="'.esc_url($atts['url']).'" style="display:inline-block;padding:10px 20px;background-color:'.esc_attr($atts['color']).';color:#fff;text-decoration:none;border-radius:4px;">'.esc_html($atts['text']).'</a>';
}
add_shortcode('wpwebsite_button', 'wpwebsite_button_shortcode');

Теперь вы можете использовать шорткод так: [wpwebsite_button url="https://wpwebsite.ru" text="Перейти" color="green"]

Он выведет стилизованную кнопку зеленого цвета с ссылкой.

Расширенные параметры и обработка ошибок в шорткодах WordPress

Важно не только принимать параметры, но и валидировать их, чтобы избежать проблем с безопасностью и отображением. Например, проверять URL через esc_url, а текст через esc_html.

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

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

function wpwebsite_alert_shortcode($atts) {
    $atts = shortcode_atts(
        array('type' => 'info', 'message' => ''), $atts, 'wpwebsite_alert'
    );
    if (empty($atts['message'])) {
        return '<div style="color:red;">Ошибка: сообщение не указано.</div>';
    }
    $colors = array('info' => '#d9edf7', 'warning' => '#fcf8e3', 'error' => '#f2dede');
    $color = isset($colors[$atts['type']]) ? $colors[$atts['type']] : $colors['info'];
    return '<div style="background-color:'.esc_attr($color).';padding:10px;border-radius:3px;">'.esc_html($atts['message']).'</div>';
}
add_shortcode('wpwebsite_alert', 'wpwebsite_alert_shortcode');

Пример использования: [wpwebsite_alert type="warning" message="Это предупреждение!"]

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

1. Кнопки с разным стилем и ссылками

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

2. Вывод последних записей с фильтрами

Шорткод может принимать параметры категории, количества записей и формата вывода:

function wpwebsite_recent_posts_shortcode($atts) {
    $atts = shortcode_atts(array('count' => 5, 'category' => ''), $atts, 'wpwebsite_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']);
    }

    $posts = get_posts($args);
    if (empty($posts)) {
        return '<p>Записей не найдено.</p>';
    }

    $output = '<ul>';
    foreach ($posts as $post) {
        $output .= '<li><a href="'.get_permalink($post).'">'.esc_html(get_the_title($post)).'</a></li>';
    }
    $output .= '</ul>';

    return $output;
}
add_shortcode('wpwebsite_recent_posts', 'wpwebsite_recent_posts_shortcode');

Используйте так: [wpwebsite_recent_posts count="3" category="novosti"]

3. Встраивание видео с настраиваемыми параметрами

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

function wpwebsite_video_shortcode($atts) {
    $atts = shortcode_atts(array(
        'url' => '',
        'width' => '560',
        'height' => '315'
    ), $atts, 'wpwebsite_video');

    if (empty($atts['url'])) {
        return '<p>Ошибка: URL видео не указан.</p>';
    }

    $url = esc_url($atts['url']);
    $width = intval($atts['width']);
    $height = intval($atts['height']);

    return '<iframe width="'. $width .'" height="'. $height .'" src="'. $url .'" frameborder="0" allowfullscreen></iframe>';
}
add_shortcode('wpwebsite_video', 'wpwebsite_video_shortcode');

Пример использования: [wpwebsite_video url="https://www.youtube.com/embed/dQw4w9WgXcQ" width="640" height="360"]

Использование плагина Clearfy Pro для управления шорткодами и оптимизации

Если вы хотите упростить работу с шорткодами и улучшить производительность сайта, рекомендуем обратить внимание на плагин Clearfy Pro. Он помогает отключать ненужные шорткоды на страницах, очищать базу от мусора и оптимизировать загрузку.

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

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

При создании шорткодов с параметрами важно всегда фильтровать входящие данные. Используйте функции esc_html, esc_url, sanitize_text_field и другие в зависимости от типа данных.

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

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

Заключение

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

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше