解决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缓存之后文章浏览量无法增加的问题了
本文转载自:夜色静好
- QQ群:253510359
- 建议:VPS商家层出不穷,根据需要购买,切莫剁剁剁!
- 评测:很多VPS虽已评测,但网络环境改变稳定性,速度也会随之改变.评测只能作为一般性参考.不负任何法律,道义责任.
- 申明:所有vps,域名,服务器优惠信息均来自网络公开内容,由于水平有限不免有谬误.请以官方为准.