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

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

Что такое шорткод и зачем он нужен для affiliate ссылок

Шорткод — это небольшая конструкция в квадратных скобках, которую WordPress автоматически заменяет на определённый контент. Например, вместо долгой HTML-ссылки или сложного кода можно просто вставить [wpaffiliate_link id=123], и эта конструкция автоматически заменится на нужную партнёрскую ссылку с дополнительными параметрами.

Преимущества использования шорткодов для affiliate ссылок:

  • Централизованное управление ссылками — изменил URL в одном месте, и он обновился во всех постах.
  • Возможность добавлять динамические параметры, например, utm-метки или ID пользователя.
  • Простота использования для редакторов, которые не знакомы с кодом.

Создание базового шорткода для affiliate ссылок

Начнём с создания простого шорткода, который будет подставлять URL из массива с ID. Для примера создадим функцию wpaffiliate_create_affiliate_link, которая принимает ID и возвращает ссылку.

function wpaffiliate_create_affiliate_link($atts) {
    // Массив с примерами affiliate ссылок
    $links = array(
        '1' => 'https://affiliate.example.com/product1?ref=wpaffiliate',
        '2' => 'https://affiliate.example.com/product2?ref=wpaffiliate',
        '3' => 'https://affiliate.example.com/product3?ref=wpaffiliate'
    );

    // Получаем атрибут id
    $atts = shortcode_atts(array(
        'id' => '1'
    ), $atts, 'wpaffiliate_link');

    $id = $atts['id'];

    if (!isset($links[$id])) {
        return 'Ссылка не найдена';
    }

    $url = esc_url($links[$id]);

    // Возвращаем HTML ссылки
    return '<a href="' . $url . '" target="_blank" rel="nofollow noopener">Перейти по партнерской ссылке</a>';
}
add_shortcode('wpaffiliate_link', 'wpaffiliate_create_affiliate_link');

Данный код добавляет шорткод [wpaffiliate_link id=2], который выводит кликабельную ссылку на нужный продукт. Атрибут id позволяет выбирать конкретную ссылку из массива.

Расширение функционала: динамические utm-метки и пользовательские параметры

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

Изменим функцию так, чтобы она принимала массив дополнительных параметров, например:

function wpaffiliate_create_affiliate_link($atts) {
    $links = array(
        '1' => 'https://affiliate.example.com/product1',
        '2' => 'https://affiliate.example.com/product2',
        '3' => 'https://affiliate.example.com/product3'
    );

    $atts = shortcode_atts(array(
        'id' => '1',
        'utm_source' => 'wpaffiliate',
        'utm_medium' => 'affiliate',
        'utm_campaign' => ''
    ), $atts, 'wpaffiliate_link');

    $id = $atts['id'];

    if (!isset($links[$id])) {
        return 'Ссылка не найдена';
    }

    $base_url = $links[$id];

    // Формируем GET-параметры utm
    $params = array();
    if (!empty($atts['utm_source'])) {
        $params['utm_source'] = $atts['utm_source'];
    }
    if (!empty($atts['utm_medium'])) {
        $params['utm_medium'] = $atts['utm_medium'];
    }
    if (!empty($atts['utm_campaign'])) {
        $params['utm_campaign'] = $atts['utm_campaign'];
    }

    $url = add_query_arg($params, $base_url);
    $url = esc_url($url);

    return '<a href="' . $url . '" target="_blank" rel="nofollow noopener">Купить продукт</a>';
}

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

[wpaffiliate_link id=2 utm_campaign=summer_sale]

Это добавит к ссылке параметры utm_source=wpaffiliate, utm_medium=affiliate и utm_campaign=summer_sale. Такой подход значительно облегчает аналитику и позволяет гибко настраивать кампании.

Обработка входящих GET-параметров для динамического добавления

Иногда хочется автоматически добавлять в ссылки параметры из URL текущей страницы, например идентификатор партнёра или источник трафика. Для этого можно расширить шорткод, чтобы он подхватывал GET-параметры.

Добавим в функцию проверку параметров из $_GET и добавим их в ссылку, если они есть:

function wpaffiliate_create_affiliate_link($atts) {
    $links = array(
        '1' => 'https://affiliate.example.com/product1',
        '2' => 'https://affiliate.example.com/product2',
        '3' => 'https://affiliate.example.com/product3'
    );

    $atts = shortcode_atts(array(
        'id' => '1',
        'utm_source' => 'wpaffiliate',
        'utm_medium' => 'affiliate',
        'utm_campaign' => ''
    ), $atts, 'wpaffiliate_link');

    $id = $atts['id'];

    if (!isset($links[$id])) {
        return 'Ссылка не найдена';
    }

    $base_url = $links[$id];

    $params = array();

    // Добавляем параметры из атрибутов шорткода
    foreach (array('utm_source', 'utm_medium', 'utm_campaign') as $param) {
        if (!empty($atts[$param])) {
            $params[$param] = $atts[$param];
        }
    }

    // Добавляем параметры из URL страницы
    $allowed_get_params = array('ref', 'partner_id');
    foreach ($allowed_get_params as $get_param) {
        if (!empty($_GET[$get_param])) {
            $params[$get_param] = sanitize_text_field($_GET[$get_param]);
        }
    }

    $url = add_query_arg($params, $base_url);
    $url = esc_url($url);

    return '<a href="' . $url . '" target="_blank" rel="nofollow noopener">Перейти по партнерской ссылке</a>';
}

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

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

1. Pretty Links

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

2. ThirstyAffiliates

Обеспечивает управление партнерскими ссылками, маскировку URL и вставку ссылок через шорткоды. Поддерживает импорт/экспорт ссылок и расширенные отчёты.

3. AffiliateWP

Комплексное решение для создания собственной affiliate программы с управлением партнёрами, отслеживанием и выплатами. Включает поддержку шорткодов для вывода ссылок и статистики.

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

При работе с affiliate ссылками важно не только удобство, но и безопасность:

  • Используйте атрибуты rel="nofollow noopener" для партнерских ссылок, чтобы не передавать вес и защититься от уязвимостей.
  • Обязательно экранируйте URL через esc_url(), чтобы предотвратить XSS-атаки.
  • Не храните в открытом виде чувствительные данные, такие как ключи API, в шорткодах или ссылках.
  • Для SEO лучше использовать маскировку ссылок с помощью плагинов, чтобы не терять трафик из-за внешних URL.

Все эти рекомендации помогут сделать сайт с affiliate ссылками профессиональным и надёжным.

Как внедрить код в ваш сайт

Чтобы добавить шорткод, достаточно вставить код в файл functions.php вашей темы или создать небольшой плагин. Рекомендуется использовать дочернюю тему или плагин, чтобы не потерять изменения при обновлении.

Например, создадим файл wpaffiliate-shortcodes.php в папке wp-content/plugins/wpaffiliate-shortcodes/ с таким содержимым:

<?php
/*
Plugin Name: WPAffiliate Shortcodes
Description: Кастомные шорткоды для affiliate ссылок
Version: 1.0
Author: WPAffiliate
*/

// Весь код шорткодов сюда, например функция wpaffiliate_create_affiliate_link и add_shortcode

Активируйте плагин в админке — и шорткод будет работать на всем сайте.

Как использовать webhook’и для affiliate сайтов на WordPress
15.01.2026
Как создать собственный affiliate плагин для WordPress
03.11.2025
Как автоматизировать обновление affiliate снимков в WooCommerce на WordPress
03.05.2026
Как создать автоматический отчет по affiliate кампаниям в WordPress
26.12.2025
Как настроить обновление affiliate ссылок в WordPress без плагинов
16.12.2025