解决开启 WP Super Cache 缓存时 WP-Postviews 不计数的问题

燕山网络科技2017-10-07 21:29:531670

  鉴于 WP-Postviews 和 WP Super Cache 都是热门插件,所以两个插件冲突不计数的问题已经是个老问题了,但是网上的解决方案并没有真正解决问题,虽然计数了,但是在缓存更新之前是不会更新浏览数的,相信很多强迫症的朋友根本就不能忍受这个问题。到最后只能放弃其中的一个。当然,还有压根就不计数的朋友,这类朋友基本是因为长得太丑。

  WP Super Cache 是在apache的环境下工作,nginx需要重写配置rewrite规则。关于伪静态配置,可参考下:WordPress 伪静态规则(IIS/Apache/Nginx)

  说下 WP Super Cache 的原理吧,是把所有的页面转化成静态html,然后再通过30X定向,绕后php直接访问静态html来加速,在有新评论和新文章时会更新缓存,而 WP-Postviews 原理是每次访问给meta加1,启用cache后不调用php文件了,所以自然不会计数。于是插件的作者通过ajax来增加计数,但是不知道为啥,有时候js不能正确加载,于是手动修改下吧。

  编辑wp-postviews.php,在插件目录下哦,找到下面的这段

  解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第1张

  替换成下面这样,也就是去掉了条件判断。

 解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第2张

  然后重新生成下缓存,就OK了。

  这时候每次点击的时候后台会更新显示数,但是前台不会更新,下面我们来解决这个问题。

  可以通过AJAX和DOM操作来解决。把下面的代码添加到wp-postviews.php中

 解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第3张

  这段添加到postviews-cache.js中

  解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第4张

  默认的调用方法是

  解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第5张

  现在替换为

 解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第6张

  或者

  解决开启 WP Super Cache 缓存时 WP Postviews 不计数的问题 WordPress网站维护 wordpress教程 第7张

  这时候我们发现,文章页是正常计数的而且实时刷新,但是首页还是不行啊,这个没办法了,不过可以通过设置wp-super-cache,不缓存首页,这样就完美解决问题了。。


分享到:

本文链接:https://h.finchui.com/wordpress/2642.html 转载需授权!

最新发布

燕山网络科技在线咨询

上班时间:9:00-22:00
周六、周日:14:00-22:00
wechat
扫一扫二维码,添加客服微信

15639981097

上班时间:9:00-22:00
周六、周日:14:00-22:00

扫一扫二维码,添加客服微信