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

Мар 06 2017 Published by under LANDING PAGE

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

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

Запросы будем разделять с помощью 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 комментария

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

35 - столько SQL запросов к базе.
0,147663 - за столько сгенерировалась страница.