2016-07-14 3 views
0

Мы начали добавлять довольно простые пользовательские параметры на URL-адрес нашего веб-сайта для отслеживания источников маркетинга. Примером может служить www.example.com?campaign=facebook & device = mobile.Как передать пользовательскую переменную в качестве параметра URL в WordPress

Проблема заключается в том, что WordPress блокирует эти пользовательские параметры от нажатия одной страницы на другую. Я читал, что есть способ либо (1.) добавить файл cookie для хранения этих параметров до тех пор, пока приложение не будет заполнено, либо (2.) добавит код на PHP сайта WordPress, который заставит его распознать эти параметры и позволяют им проталкиваться. Я бы предположил, что № 2 легче сделать, но я действительно не знаю.

Я нашел этот код:

function add_query_vars_filter($vars){ 
    $vars[] = "campaign"; 
    return $vars; 
} 
add_filter('query_vars', 'add_query_vars_filter'); 

Но не кажется, что это будет работать. Я не уверен, ошибаюсь ли я в коде, помещая его в неправильное место или вообще не используя что-то неправильное. Я поместил его в файл functions.php сайта WordPress. Любая помощь будет принята с благодарностью!

ответ

0

Я бы определенно пошел с опцией 1 и установил cookie, как только страница загрузится. Вы не хотите, чтобы строка строки запроса следовала за каждой ссылкой на веб-сайте.

Сначала проверьте запрос $ _GET и сохраните файл cookie, если он установлен.

if (isset($_GET['campaign']){ 
    setcookie("campaign", $_GET['campaign'], time()+3600); /* expire in 1 hour */ 
} 

Затем проверьте, установлен ли файл cookie и соответствующим образом измените бизнес-логику.

if(isset($_COOKIE['campaign'])) { 
echo "Welcome back it looks like you came from the '" . $_COOKIE['campaign'] . "' campaign!"; 
} 

Надеюсь, это поможет.

+0

Спасибо! Где я могу добавить этот код? header.php, functions.php, index.php или где-то еще? – Amanda