ikxin

解决WP开启cdn浏览量不增加
正文wordpress开启CDN静态缓存页面之后,当我们访问文章的时候,便不会去请求源站,而是返回CDN缓存了的页...
扫描右侧二维码阅读全文
26
2017/05

解决WP开启cdn浏览量不增加

正文

wordpress开启CDN静态缓存页面之后,当我们访问文章的时候,便不会去请求源站,而是返回CDN缓存了的页面,所以统计文章的浏览数量不会进行自增以及其他的变化...

想要解决这个问题,我们可以通过Ajax来异步请求服务器,然后再进行文章的浏览数量自增或其他的操作...

重要提醒:
本方法仅适用于使用了WP-PostViews插件或者和具有WP-PostViews相同字段的博客,若你的文章统计字段不同,可自行修改下方SQL语句以达到效果

解决方案

首先,我们在wordpress的根目录新建一个php文件,命名为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文件插入以下js代码

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

这样就可以完美解决wordpress开启cdn缓存之后文章浏览量无法增加的问题了

最后修改:2019 年 06 月 25 日 01 : 00 PM
如果觉得我的文章写得不错,请赏我一杯咖啡

发表评论