解决WP-PostViews Plus与W3 Total Cache冲突导致文章浏览数显示问题

作者: 红色黎明 分类: 其他技术 发布时间: 2017-09-05 19:45

最近在升级博客后台程序和升级主题程序,用了WP-PostViews Plus统计和显示文章浏览数插件之后,发现在代码里加了如下语句,主页的文章浏览数显示不出来。

百思不得其解。最后终于找到了原因,我的博客同时也用了W3 Total Cache做缓存插件,这个插件会事先把所有页面转化成静态html并缓存在服务器,然后再通过重定向,绕过php直接访问静态html资源来加速,在有新评论和新文章时会更新缓存。启用后造成调用php获取浏览数的函数失败。WP-PostViews Plus相比前身WP-PostViews已经解决不计数问题,但是首页显示浏览数还是会有问题。所以解决的方法就是,通过ajax来异步获取浏览数,而不是在php里直接调用函数。

首先,在主题目录的index.php或者你需要的页面上加入一段ajax请求的代码:

其次,修改插件目录wp-content/plugins/wp-postviews-plus/下的wp-postviews-plus.php文件,加入如下代码:

这样,在缓存成静态页面的时候,js代码会被保留下来,从而在加载页面的时候调用,通过ajax请求后台php获取浏览数数据。这样就解决了这个冲突问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注