保留最初在整个站点中传递的查询字符串参数

时间:2018-04-19 20:29:56

标签: php wordpress

在wordpress网站的登陆页面上,我有两个按钮。单击每个按钮会引导您进入同一页面,但我在每个按钮上都传递了一个查询字符串参数,以帮助我区分它们(因为我想调整页眉和页脚的颜色,并根据参数值显示/隐藏一些按钮) 。问题是,当我点击页面上的其他位置时,我丢失了查询字符串参数。有没有办法可以通过网站上的每个页面加载来保留该参数?

我在我的functions.php

中尝试了以下内容
echo esc_url( add_query_arg( 'foo', 'bar' ) );

但这没有效果。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我会改用cookie。具体来说,我会使用jQuery Cookie: https://github.com/carhartl/jquery-cookie

您可以在按钮上设置数据值:

<button class="my_button" data="theme_one">
<button class="my_button" data="theme_two">

当用户点击按钮时:

jQuery(".my_button").click(function(event){
    var theme = jQuery(this).data();
    jQuery.cookie("theme", theme);
});

然后,在下一页上,您可以获取cookie值并执行任何操作:

var theme = $.cookie("theme");
if(theme) {
    alert(theme);
}

查看jQuery Coolie插件文档,了解如何设置cookie持续时间。 使用此方法,您可以将数据保存在用户的计算机上,而不必担心在丑陋的查询字符串中传递数据。

在上面的代码示例中,您可能需要阻止该事件,然后在设置cookie后将浏览器发送到设置的URL。这实际上取决于你已经在做什么。