Мультилендинг на WordPress

Мар 06 2017 Published by under LANDING PAGE

В предыдущей статье мы рассмотрели варианты мультилендингов. А теперь непосредственно переходим к практической реализации для сайтов на WordPress.

Предположим, на нашу страничку идет народ по трем запросам: «создание landing page», «верстка landing page», «разработка landing page». Соответственно этим запросам будем менять заголовок. Для всех остальных запросов заголовок пусть будет «разработка интернет проектов под ключ».

Мультилендинг на WordPress

Запросы будем разделять с помощью UTM меток, которые можно сформировать в любом сервисе. Параметр utm_content соответствует конкретному запросу и позволяет однозначно определить запрос с помощью GET метода.

Скрипт на PHP имеет вид


Теперь в нужное место страницы нам достаточно вставить такой код:

Если же нам надо помимо заголовка поменять и картинку, то поменяем функцию

 

Вызывать картинку и заголовок будет код:

Для работы скрипта достаточно запустить исполняемый PHP  код в WordPress.

Это все хорошо, но некоторые плагины (например Visual Composer) настолько влияют на работу CMS, что не получится запустить PHP код ни с одним плагином.

Как быть? На помощь идет старый добрый JavaScript


 

На тяжелом сайте может появиться некоторая задержка изменений. Если есть возможность сделать мультилендинг на PHP — делайте на PHP.
Усовершенствованный вариант js скрипта, который позволяет можно создать шаблоны для подмены на основе встречаемого слова (шаблоны определяются в переменной multi)

$(function() {
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}utm=[];
$.each(["utm_source","utm_medium","utm_campaign","utm_term",'source_type','source','position_type','position','added','creative','matchtype'],function(i,v){
utm[v]=getURLParameter(v) || $.cookie(v);
$.cookie(v, utm[v], { expires: 365, path: '/' });
});// MULTI
var ab_title = "default";
if(utm['utm_term']){
multi=multi.split('\n');
multi=$.map(multi,function(v, i){
arr1=v.split(';');
r=new RegExp(arr1[0]);
return {reg: r,val: arr1[1]};
});
multi=$.grep(multi,function(v,i){
return utm['utm_term'].search(v.reg) > -1
});
if(multi[0]){
ab_title=multi[0].val;
var target = $('.multi'); //элемент для подмены
target.html(ab_title);
}
}
});

4 комментария

Добавить комментарий

75 - столько SQL запросов к базе.
0,287092 - за столько сгенерировалась страница.
Политика конфиденциальности
Правила пользования сайтом