解决DUX主题启用 Wp Super Cache 后的文章计数问题

前段时间觉得网站访问速度很慢,就用了静态缓存的插件“WP Super Cache”来加速。

用了缓存,页面变成了静态页面,速度有提升,也减轻了服务器的负荷。当然,有失必有得,你得到某些东西的同时一定在失去某些东西。速度上来了,可是问题也不少。Wp Super Cache这个插件你得不断地调试它,才能发挥它的作用。你要在缓存的内容、时间等等设置上面做测试,得到适合你网站的参数。

       相关页面:WordPress静态缓存插件:WP Super Cache安装与配置优化

关键的问题是,DUX主题启用缓存后文章的计数功能失效了(实时计算的插件都会受到影响)。以前一刷新会增加阅读量,现在刷新数字不变-。-

咨询过DUX的作者,他表示没有办法(他的意思是,你看的是缓存,怎么可能增加计数)。很官方的说法,不错,大神是很忙的。

据说是因为DUX主题,计数的功能是通过WordPress的字段实现的,改起来麻烦。

没办法,自己研究了好久,总算勉强解决了问题。(有句话叫做办法总比困难多:)


具体的方法是用WP-PostViews Plus这个插件来代替DUX主题的计数功能。

WP-PostViews Plus支持缓存下的计数(通过ajax实现)。

安装插件后,在插件的编辑页面中,readme.txt里我们能看到插件的用法:

= Usage =

You need edit you theme to show the post views.
Add `<?php if(function_exists('the_views')) { the_views(); } ?>` to show the post views in your page.

(这里注意下,如果要插入的位置前面已经有<?php 那么不再需要输入<?php ?>)

对于计数功能,主要是首页各文章的计数和文章页面的计数。

在DUX主题中,我们需要修改的文件有2个:excerpt.php(文章摘要载入页面。大概是这个意思)、single.php(文章正文页面)。

(吐槽下,网上关于DUX主题计数代码插入的位置,完全没人提到,复制粘贴的人一大堆。这都是我自己找出来的。特别是首页计数(正确来说应该是文章摘要计数)这个文件,找了很久,之前一直以为是index.php)

编辑这2个文件,将上面的计数代码插入即可(原来DUX的计数代码去掉)。位置很好找,关注中文的地方、views就知道了。如果你真的还找不到请留言。


清除缓存,再次访问首页和文章页就看到我们修改的效果了。刷新也会继续计数!(计数的名称默认我记得是views?可以在插件的设置页面自定义的)

只是到这里还会有个小问题,就是计数数量是翻倍的,计数*2。原因应该是DUX和WP-PostViews Plus都进行了计算。这样我们就需要去修改的WP-PostViews Plus的代码(也可以修改DUX主题的计数代码,只是主题经常会更新,建议就修改插件的代码,一劳永逸)。

在计数计算那里做个处理:

打开class.wp-pvp.php文件,定位到175行,这一行的结尾可以看到+1,将+1改为+0即可!

修改后的代码为:

$post_views = (int) get_post_meta($post_ID, self::$post_meta_botviews, true) + 0;

修改完成后,再次刷新页面,计数就能正确显示了。


剩余的问题及注意的地方:

1、DUX主题的“分页无限加载页数”功能开启的话,后面加载的数据不会计数(下次闲了再研究);

2、使用了WP-PostViews Plus后,如果你删除这个插件,数据也会被删除(wp_postviews_plus、wp_postviews_plus_reflash数据表被删除)。建议停用即可;

3、关于WP Super Cache,预缓存模式缓存页面的速度非常慢,大概需要30-60分钟才能缓存几百个页面?而且缓存的速度似乎没有普通模式的快

打赏
欢迎转载,请注明出处:轻时代 » 解决DUX主题启用 Wp Super Cache 后的文章计数问题

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

打赏一下作者,鼓励他发表更多的精彩文章

支付宝扫一扫打赏

微信扫一扫打赏