分享喵
分享我们的收藏

wordpress DUX主题使用缓存插件后浏览量不增加的不完美解决方案

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拉,在插件后台清除一下缓存,然后开一个隐身窗口打开一篇文章测试一下

你会发现有这样的问题:

  1. 登陆用户访问、刷新时浏览量会+2
  2. 访客访问、刷新时浏览量不变

关于第一个问题喵叔也没有办法,这个问题如果你有解决方案请留言,第二个问题其实浏览量已经变化,但不是实时的,你用登陆用户查看就会发现其实数值变化了,缓存下次更新时会加上来。

上面这个方案作者给出了另外一个更好的方法,但是喵叔没成功,并且导致文章特色图片不显示,大家可以试一下:解决WordPress加入CDN后“非插件浏览次数统计”浏览次数不刷新问题

然后喵叔在网上还找到了另外一种解决方案,但是测试无效,喵叔实在不会代码,请大家测试:解决WordPress开启CDN缓存后文章浏览量不自增的问题

最后,如果你有完美的解决方案请留言,在此先谢过!

本站信息除喵叔原创外均来源于网络,信息可靠性请自行辨别,本站不负责相应的法律责任!交流群:512346889;转载请加超链接注明:分享喵 » wordpress DUX主题使用缓存插件后浏览量不增加的不完美解决方案

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    老哥我咋没用….

    derrick2年前 (2018-04-30)回复
    • 清除缓存后再试试

      喵叔2年前 (2018-04-30)回复