Для сайтов, работающих с партнёрскими программами, удобное управление 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
Активируйте плагин в админке — и шорткод будет работать на всем сайте.