Вопрос или проблема
Пожалуйста, помогите,
Я использую сайт на wp как посредника между, например, новостным сайтом, давайте назовем его A, и фактическим сайтом, который, например, продает определенный продукт, давайте назовем его B.
A —- посреднический сайт — B
новостной сайт —- wp — сайт продукта
Что мне нужно, так это сохранить 2 URL-параметра с сайта A на сайт B. Хорошим примером, который иллюстрирует вышеизложенное, является новостной сайт, который имеет статью о НБА на сайте A. Одна из ссылок является рекламой, например, баскетбольных кроссовок. Если клиент щелкает по ней, он попадает на сайт wp-посредника, где он может выбрать цвет, стиль и т.д. Затем, если он решает что-то купить, его перенаправляют на сайт B.
Что мне нужно, и это крайне важно, так это то, чтобы сайт wp передавал 2 URL-параметра с исходной ссылки на сайте A.
Я думал, что для сайта wp, когда он видит “a href”, добавить параметры из переменной 1 и переменной 2, чтобы все ссылки имели эти 2 параметра и передавали их.
Могу ли я использовать следующий скрипт?
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
} return params;}
var query = getQueryParams(document.location.search);
$('a').each(function () {
var href = $(this).attr('href');
if (href) {
href += (href.match(/\?/) ? '&' : '?') + 'affiliate=" + query.affiliate + "&pname=" + query.pname;
$(this).attr("href', href);
}
});
1-я часть делает все URL-тексты в utf8, а не закодированными в %%, и вторая часть должна передавать 2 переменные, о которых идет речь.
Пожалуйста, помогите, где мне это разместить и как мне это вызвать?
На случай, если у кого-то еще есть похожая проблема, я сумел решить ее, используя этот плагин
и затем я добавил в нижний колонтитул следующий код
<script type="text/javascript">
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {}, tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var query = getQueryParams(document.location.search);
jQuery('a').each(function () {
var href = jQuery(this).attr('href');
if (href) {
href += (href.match(/\?/) ? '&' : '?') + 'affiliate=" + query.affiliate + "&pname=" + query.pname;
jQuery(this).attr("href', href);
}
});
</script>
Ответ или решение
Для того чтобы успешно передать URL-параметры от сайта A к сайту B через ваш промежуточный сайт на WordPress (сайт WP), вы правильно выбрали подход с использованием JavaScript. Он позволяет динамически добавлять параметры к ссылкам на вашем сайте, что является эффективным решением для сохранения важной информации. Давайте подробно разберем вашу ситуацию и предложенные решения.
Цель
Вашей целью является передача двух параметров URL (например, affiliate
и pname
) с сайта A на сайт B через промежуточный сайт WP. Это позволяет отслеживать источник трафика и другие важные данные.
Решение
Ваш первоначальный код, который вы предложили, выглядит достаточно функционально, но требует некоторых доработок и правильного расположения для выполнения. Вот измененный вариант вашего кода с учетом некоторых исправлений:
<script type="text/javascript">
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
}
var query = getQueryParams(document.location.search);
jQuery('a').each(function () {
var href = jQuery(this).attr('href');
if (href && query.affiliate && query.pname) {
href += (href.match(/\?/) ? '&' : '?') + 'affiliate=' + encodeURIComponent(query.affiliate) + '&pname=' + encodeURIComponent(query.pname);
jQuery(this).attr('href', href);
}
});
</script>
Куда разместить код?
Вы можете использовать плагин для добавления скриптов в определенные области вашего сайта, как вы уже сделали. Плагин "Header and Footer Scripts" — это хорошее решение для включения вашего JavaScript.
- Установите плагин: Если вы еще не сделали это, установите плагин через админку WordPress по указанной вами ссылке.
- Добавьте код: Перейдите в настройки плагина и вставьте ваш JavaScript код в раздел, предназначенный для скриптов в футере. Это гарантирует, что код будет выполнен после загрузки всех ссылок на странице.
- Сохраните изменения: Не забудьте сохранить настройки плагина после добавления скрипта.
Объяснение кода
- Функция
getQueryParams
: Это функция разбирает строку запроса (query string) и возвращает объект с параметрами. Она заменяет знаки+
на пробелы и правильно декодирует URL. - Цикл
each
: Для каждого элемента<a>
на странице, код проверяет наличие параметровaffiliate
иpname
. Если они присутствуют, к значениюhref
добавляются необходимые параметры. - Использование
encodeURIComponent
: Это важно для безопасной передачи значений параметров в URL.
Заключение
Данное решение должно помочь вам сохранить нужные параметры URL на вашем сайте WP. Убедитесь, что все ссылки действительно корректно обновляются, и протестируйте переходы между страницами, чтобы подтвердить, что данные передаются успешно.
Рекомендации по SEO
- Убедитесь, что на вашем сайте нет устаревших или битых ссылок, так как это может негативно сказаться на SEO.
- Включите мета-теги и описания на страницах вашего сайта WP, чтобы улучшить ранжирование в поисковых системах.
Следуя данному руководству, вы сможете эффективно передавать параметры URL между сайтами, что будет полезно для отслеживания affiliate-контента и повышения конверсии.