如何在WordPress中将自定义变量作为URL参数传递

时间:2016-07-14 04:25:52

标签: php wordpress parameters query-variables

我们已开始将相当简单的自定义参数附加到我们网站的网址上以跟踪营销来源。一个例子可能是www.example.com?campaign=facebook&device=mobile。

问题是,WordPress阻止这些自定义参数从一个页面推送到下一个页面。我已经读过,有一种方法可以(1.)添加一个cookie来存储这些参数,直到填写应用程序或(2.)将一些代码添加到WordPress网站的PHP中,这将使它识别这些参数并允许它们通过。我认为#2更容易做,但我真的不知道。

我找到了这段代码:

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

但它似乎没有起作用。我不确定我是否错误编写代码,将其置于错误的位置,或者完全使用错误的东西。我把它放在WordPress网站的functions.php文件中。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我肯定会选择第一个,并在页面加载后立即设置一个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!";
}  

希望这会有所帮助。