wpdownload.ru wordpress WPDownload.ru

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

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

Что такое шорткод с параметрами в WordPress

Шорткод с параметрами — это специальный тег в тексте, который может содержать дополнительные данные, влияющие на результат его работы. Например, [wpdownload_button text="Скачать" link="https://example.com/file.zip"] будет показывать кнопку со своим текстом и ссылкой.

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

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

Для регистрации шорткода используется функция add_shortcode. В обработчике шорткода параметры передаются в виде массива. Рассмотрим простой пример создания шорткода [wpdownload_button] с параметрами text и link.

function wpdownload_create_button_shortcode($atts) {
    $atts = shortcode_atts(
        [
            'text' => 'Скачать',
            'link' => '#'
        ],
        $atts,
        'wpdownload_button'
    );

    return '<a href="' . esc_url($atts['link']) . '" class="wpdownload-btn">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpdownload_button', 'wpdownload_create_button_shortcode');

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

Автоматическое создание нескольких шорткодов с похожей логикой

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

function wpdownload_dynamic_shortcode_handler($atts, $content = null, $tag = '') {
    $atts = shortcode_atts([
        'text' => 'Текст по умолчанию',
        'link' => '#'
    ], $atts, $tag);

    switch ($tag) {
        case 'wpdownload_button':
            return '<a href="' . esc_url($atts['link']) . '" class="wpdownload-btn">' . esc_html($atts['text']) . '</a>';
        case 'wpdownload_link':
            return '<a href="' . esc_url($atts['link']) . '">' . esc_html($content ? $content : $atts['text']) . '</a>';
        default:
            return '';
    }
}

foreach (['wpdownload_button', 'wpdownload_link'] as $shortcode) {
    add_shortcode($shortcode, 'wpdownload_dynamic_shortcode_handler');
}

Такой подход упрощает поддержку и расширение набора шорткодов.

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

На сайте wpdownload.ru часто требуется выводить ссылки для скачивания с разными атрибутами: версией файла, типом, ограничениями доступа. Для этого удобно использовать шорткоды с параметрами.

Например, можно добавить параметр version и динамически формировать ссылку:

function wpdownload_file_link_shortcode($atts) {
    $atts = shortcode_atts([
        'file' => '',
        'version' => 'latest'
    ], $atts, 'wpdownload_file');

    if (empty($atts['file'])) {
        return '<span style="color:red;">Ошибка: файл не указан</span>';
    }

    $base_url = 'https://wpdownload.ru/files/';
    $file_url = esc_url($base_url . $atts['version'] . '/' . $atts['file']);

    return '<a href="' . $file_url . '" download>Скачать ' . esc_html($atts['file']) . ' (версия ' . esc_html($atts['version']) . ')</a>';
}
add_shortcode('wpdownload_file', 'wpdownload_file_link_shortcode');

Использование: [wpdownload_file file="plugin.zip" version="1.2.3"]

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

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

  • Использовать функции esc_html() и esc_url() для защиты от XSS.
  • Не выполнять ресурсоёмкие операции внутри обработчика шорткода.
  • Кэшировать результаты, если шорткод выводит одинаковый контент на нескольких страницах.
  • Проверять обязательные параметры и выводить понятные ошибки для пользователя.

Пример кэширования вывода шорткода

function wpdownload_cached_shortcode($atts) {
    $cache_key = 'wpdownload_shortcode_' . md5(json_encode($atts));
    $cached = get_transient($cache_key);
    if ($cached !== false) {
        return $cached;
    }

    // Генерация контента
    $content = '<div>Динамический контент с параметрами</div>';

    set_transient($cache_key, $content, HOUR_IN_SECONDS);
    return $content;
}
add_shortcode('wpdownload_cached', 'wpdownload_cached_shortcode');

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

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

  • Clearfy Pro — плагин для оптимизации и расширения функционала, поддерживает кастомные шорткоды.
  • WPRemark — для оценки контента, можно выводить результаты через шорткоды с параметрами.
  • My Popup — позволяет создавать всплывающие окна, которые можно вызывать через шорткоды с параметрами.

Вывод

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

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙