dux、tob等主题等自带文章浏览量统计,这点是非常好的,因为我们不再需要使用插件或者自己修改代码
如果主题不自带阅读统计功能可以看看这个wordpress利用Post Views Plus插件(或者纯代码)在前台页面和后台文章列表显示浏览量
可是当我们使用wp super cache、wp rocket等缓存插件后就会发现浏览量不自增了,这下可把强迫症的我急坏了,因为不会代码、遂百度之...
网上的解决方案不多,但是也有几篇相关的文章,下面这个是喵叔使用有效的一个:
原文来自:成航先森
首先,在footer.php中添加ajax的代码,注意url的地址要改为自己的php路径:
<?php if (is_singular()) : ?> <!-- ajax post view --> <!-- ajax post view --> <script type= "text/javascript" > $.ajax({ type:'POST', url: "/wp-content/themes/*/*.php" , /*此处需要修改为自己的php路径*/ data: { "postviews_id" : "<?php the_ID();?>" } }); </script> <?php endif ; ?>
将下面内容保存到一个php文件中,放入自己的wordpress主题里面,将该php的访问链接加入到上面的url中:
<?php //禁止直接访问本php if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) { header('Allow: POST'); header('HTTP/1.1 405 Method Not Allowed'); header('Content-Type: text/plain'); exit; } require( dirname(__FILE__) . '/../../../wp-load.php' ); nocache_headers(); $post_ID = $_POST['postviews_id']; $post_views = (int)get_post_meta($post_ID, 'views', true); update_post_meta($post_ID, 'views', ($post_views+1)); ?>
这样就ok拉,在插件后台清除一下缓存,然后开一个隐身窗口打开一篇文章测试一下
你会发现有这样的问题:
- 登陆用户访问、刷新时浏览量会+2
- 访客访问、刷新时浏览量不变
关于第一个问题喵叔也没有办法,这个问题如果你有解决方案请留言,第二个问题其实浏览量已经变化,但不是实时的,你用登陆用户查看就会发现其实数值变化了,缓存下次更新时会加上来。
上面这个方案作者给出了另外一个更好的方法,但是喵叔没成功,并且导致文章特色图片不显示,大家可以试一下:解决WordPress加入CDN后“非插件浏览次数统计”浏览次数不刷新问题
然后喵叔在网上还找到了另外一种解决方案,但是测试无效,喵叔实在不会代码,请大家测试:解决WordPress开启CDN缓存后文章浏览量不自增的问题
最后,如果你有完美的解决方案请留言,在此先谢过!
Warning: A non-numeric value encountered in /www/wwwroot/www.fxmiao.net/wp-content/themes/dux/modules/mo_comments_list.php on line 26
老哥我咋没用....
Warning: A non-numeric value encountered in /www/wwwroot/www.fxmiao.net/wp-content/themes/dux/modules/mo_comments_list.php on line 26
清除缓存后再试试