在某些帖子中无法识别服务器变量

时间:2014-08-04 作者:MxmastaMills

我有一个很奇怪的问题,我从未在WordPress上见过。我刚刚将一个大型网站转换为一个新的响应主题。该网站有大约1400篇文章,上面有广告。我们显示广告的方式是通过条件逻辑,它查看$\\u SERVER[“HTTP\\u USER\\u AGENT”]变量并检查它是桌面还是移动。这些广告应该只显示在桌面上,所以如果是移动的,它就不会发出回声。我使用了下面答案中的代码:https://stackoverflow.com/questions/4117555/simplest-way-to-detect-a-mobile-device, 虽然我知道有一个本地WordPress函数wp\\u is\\u mobile(),但它基于相同的想法。

它可以在大多数帖子上正常工作,但也有一堆帖子无法正常工作(例如,手机上显示的广告)。我弄不明白,最后想可能是由于某种原因,这些页面上没有设置$\\u SERVER[“HTTP\\u USER\\u AGENT”]变量。我使用“print\\u r($\\u SERVER)”进行检查,当我加载打印的变量页面时,广告就消失了。之后的每一次页面访问都不会显示广告。这就好像直到我打印出服务器变量才被识别一样。

另一件事是,当它在手机上显示广告时,我会在手机上登录WordPress并转到那个帖子,它不会显示(这是我想要的)。因此,只有在注销WordPress后,它才会出现在某些帖子上。

我使用的是W3 Total Cache,我不知道这是否会影响服务器变量,但应该注意,因为我知道插件可能会导致一些小问题。

你知道为什么会这样吗?

1 个回复
SO网友:JasonS

关闭缓存,变量应按预期工作。

缓存会保存输出的副本,并且不会在每次加载页面时执行代码。因此,服务器变量可能包含过去页面加载的信息,而不是当前页面加载的信息。

结束