Как создать собственный шорткод для 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

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

Как настроить обратное прокси для affiliate сайтов на WordPress
12.02.2026
Как использовать webhook’и для affiliate сайтов на WordPress
15.01.2026
Как добавить автоматический отзыв на affiliate продукт в WordPress
01.04.2026
Как сделать автоматический импорт affiliate продуктов из разных сетей в WordPress
21.03.2026
Автоматическое создание и отправка affiliate отчетов по email в WordPress
28.02.2026