PostViews插件,在WP博客中使用率也是非常高的,其可以用来统计文章被浏览的次数,可以根据浏览次数排序得到热门文章列表,但在最近我发现了这个插件一个重要的问题,就是在IE下似乎不会增加浏览次数

PostViews

一开始我用的Hyper cache缓存插件和一个数据库缓存插件,发现近期的文章浏览量非常少,当然考虑到一方面是因为到春节了,大家都忙着走亲访友,没空来上网看博客了,但我还是怀疑是不是因为缓存插件跟PostViews插件有冲突。

Hyper cache对已知的用户是不会用缓存的,而且这还没法更改,我就尝试开了个ie来刷页面,看页面的底部信息,都是调到了同一个缓存文件,也就是说我用IE访问的是缓存文件,然后用Chrome登陆用户刷新页面,因为这样是不会用缓存的,所以可以看到最新的统计数据,发现并没有更新浏览次数。

先是怀疑数据库缓存插件的问题,马上禁用掉一试,依然有问题。我就初步认定是Hyper cache和PostViews的兼容性问题,网上一搜,搜出一堆wp super cache和postviews的兼容性问题,而且修改方法比较奇怪:

编辑postviews插件,找到

if(defined('WP_CACHE') && WP_CACHE)

改成

if( (defined('WP_CACHE') && WP_CACHE) || (defined('COSMETA') && COSMETA) )

这是大部分人提出的改法,因为我知道本身要用缓存插件,WP_CACHE是必须要开启的,所以下面那段或的逻辑根本就没必要,但我还是照着这个方法改了一下,依然不能解决这个问题。

既然Hyper cache不兼容postviews,而且postviews对我来说更重要一些,那我只能舍弃Hyper cache了,禁用之后,我又尝试了一次,发现还是没有更新浏览次数。这下就恼火了,想来想去,会不会是WP_CACHE这个配置项的问题?我只好去后台改了这个,禁用了wp的缓存,再试,还是有问题。

这个时候我已经被折腾的疯了,我还怀疑是不是什么插件改了我wp的什么文件,导致postviews失效了,最后抱着试试看的心态,用Chrome浏览器退出用户登陆后刷了几次页面,惊人的发现浏览次数是会更新的,然后我赶紧试了下IE,果然,IE下没有更新,我的IE版本是9,用IEtest试了下8也是一样。

那我就有理由怀疑是postviews插件和IE兼容的问题了,我从网上搜了一些使用postviews插件的网站,通过IE和Chrome对比,发现别人的站也是IE浏览不会更新次数。这么大的一个问题,网上一搜居然没人发现,那我也暂时找不出问题所在,看了看百度统计,发现我的博客IE浏览也占了有近一半了。希望哪个高手赶紧解决这个问题吧~