发布价值信息
Wordpress、Software、VPN。。

解决WordPress开启缓存后文章浏览量不自增

WordPress静态缓存目前对于我来说作用不是很大,比较适合一些流量比较大的博客或者网站。
之前接触过Wordpress静态缓存,遇到过这个问题,但是没有找到很好的解决办法,在憧憬博客看到他分享的办法简单切实用,故先转载过来收藏备用,方法我自己还没有测试,不过看样子应该可行。

下面是原文:

WordPress开启静态缓存页面之后,当我们访问文章的时候,便不会去请求源站,而是返回缓存了的页面,所以文章的浏览数量不会进行自增。

解决办法

解决这个问题,我们可以通过Ajax来异步请求服务器,然后再进行文章的浏览数量自增或其他的操作。(注:本方法仅适用于使用了WP-PostViews插件或者和具有WP-PostViews相同字段的博客,若你的文章统计字段不同,可自行修改下方SQL语句以达到效果)

首先,我们在网站的根目录新建一个操作文件,命名为views.php,将以下代码写入此文件中。

<?php require('wp-blog-header.php'); ?>
<?php
  $ajaxHead =  $_SERVER['HTTP_X_REQUESTED_WITH'];
 
  if(strtoupper($ajaxHead)==strtoupper("XMLHttpRequest")) {
    $post_id = $_POST['post_id'];
    echo $post_id;
    $sql = "update `wp_postmeta` set `meta_value`=`meta_value`+1 where `post_id`='${post_id}' AND `meta_key`='views';";
    $wpdb->query($sql);
  }else{
    header("HTTP/2 404 Not Found");  
    header("Status: 404 Not Found");
    exit;
  }

在上述代码中,为了防止恶意请求,做了一个Ajax请求头的验证,验证是否为xmlHttpRequest请求,如果不是则返回404状态。

接着我们在主题的page.php文件中插入以下代码:

<script>
  $(function(){
    $.post("/views.php",{post_id:<?php the_ID();?>},function(){});
  })
</script>

完成。

赞(0) 打赏本站

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
打赏作者
未经允许不得转载:何先生 » 解决WordPress开启缓存后文章浏览量不自增
分享到: 更多 (0)

Comments 抢沙发

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

何先生的博客 专注分享 更优质

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏