为什么从URL参数设置Cookie并不总是有效?

时间:2021-03-03 作者:NewGuy

我只使用;“页码”;从我的WP安装(不是posts)中,我想根据URL中是否存在GET参数来设置cookie。

我已将以下代码放在页面顶部。php:

if ( get_query_var(\'value\') ) {

  $value=get_query_var(\'value\');
  setcookie( \'value\',$value, time() + 2592000, COOKIEPATH, \'domain.com\' );
}
因此,如果我访问url,如:www.domain.com/page/?value=1234 我想为此域设置cookie:value:1234。

问题是,这并不是一直都有效(似乎有70%的时间有效),有时cookie没有设置。

我已经启用了自动优化和WP超级缓存插件,并将CF作为CDN。

我所尝试的:我远不是WP方面的专家,但我知道也有向函数添加函数的选项。php也有同样的用途,但我根本没能让它像这样工作。

在页面正文的哪个位置重要吗。php我写下了这段代码(是否应该更详细一些,以便始终执行它?),或者有没有其他方法可以确保代码始终执行。

我知道也有从JS设置cookie的方法,但我更倾向于从php进行设置。

1 个回复
SO网友:NewGuy

在这里回答我自己的帖子时,WP Super Cache似乎有一个专用设置(在高级部分中)来不缓存具有GET参数的URL。一旦检查完毕,这个问题似乎就不再对我重复了。

因此,真正的根本问题是缓存文件不再运行php代码,因此从php设置cookie失败,JS可能是更好的选择。

可能还有其他方法可以专门强制设置cookie,例如wpsc\\u add\\u cookie功能。

相关推荐

Cookies in template

我需要根据cookies只显示一次页面的某些部分。主要问题是我只能在插件中设置cookie,挂起init操作。我已经读了20页的谷歌,这个网站,问了2个论坛,但我仍然有这个问题。任何帮助都将不胜感激!