如何解决wordpress启用缓存插件后文章计数不准确的问题
由于微博之博的访问量比以前大了很多,所以占用的服务器资源也越来越大,经常会收到小张童鞋的来信,让我想办法降低微博之博占用的资源。在使用了众多缓存插件之后,我发现同时使用DB Cache Reloaded和Hyper Cache是一个挺好的解决博客占用资源过多的办法。
可是使用了缓存插件以后,文章计数插件WP-PostViews统计出来的数据根本就不准确啦。怎么解决这个问题呢?
使用Ajax_the_views这个插件即可。
插件名称:Ajax_the_views
作者主页:http://www.scratch99.com/wordpress-plugin-ajax-the-views/
WordPress 插件主页:http://wordpress.org/extend/plugins/ajax-the-views/stats/
插件简介:
Ajax_the_views插件是WP-PostViews插件的扩展插件,它通过Ajax方式进行浏览量统计,这就意味着即使博客启用了缓存插件也可以保持计数准确。
(目前WP-PostViews 1.50版本可以在使用缓存插件的情况下进行计数,但是这个计数却并不会同步显示在博客上,这款插件就是解决这个问题的。)
所需环境:
1、WordPress 2.8以上
2、WP-PostViews 插件已经安装并被激活
使用步骤:
第一步、安装插件Ajax_the_views插件并激活。
第二步、清理页面缓存。对于不同的缓存插件,清理缓存的方法可能会有所不同 (如 W3 Total Cache, WP Super Cache, 等).
插件如何工作的?
如果要在文章或页面显示浏览量,你需要在相应位置添加如下代码:
<?php if(function_exists(‘the_views’)) { the_views(); } ?>
(上述代码是WP-PostViews调用浏览数的代码)
但是,当页面发生缓存后,当前计数值也会同时被缓存。虽然WP-PostViews插件会在后台继续进行计数,但是由于页面缓存,前台的计数值却并没有发生变化。当每次页面缓存清除的时候(如有评论的时候),计数值才会更新。同时由于页面会再次缓存,计数值就会再次冻结直至下次缓存清除时更新。
这款插件将会查找the_views函数,并将计数值用“Please wait”语句代替,“Please wait”语句将会由一个带文章ID号的span标签包裹,如:
<span class=”ajax-the-views” id=”ajax-the-views-1977″>Please wait</span>
同时它还在页脚增加了一些JavaScript语句。该插件通过发送一个Ajax请求到服务器,查找这些文章的计数值,并将它们返回给请求的页面,然后更新计数字段。
文章来源:呓语乾坤 // http://www.qiankun.org.ru/2010/10/solve-wp-postviews-not-count.html