行业资讯 2025年08月6日
0 收藏 0 点赞 203 浏览 2120 个字
摘要 :

潘老师个人博客之前不是使用了WP-Optimize缓存插件嘛,发现使用后文章虽然有很多用户点击访问,但是后台的文章阅读量一直没有更新,如果使用cdn也会存在这种情况,今天找……

潘老师个人博客之前不是使用了WP-Optimize缓存插件嘛,发现使用后文章虽然有很多用户点击访问,但是后台的文章阅读量一直没有更新,如果使用cdn也会存在这种情况,今天找了一个方法成功解决了wordpress使用缓存或cdn后文章阅读量不更新的问题

现在直接上代码:

1)第一步:新建名为views.php的文件,代码内容如下:

<?php
require( dirname(__FILE__).'/../../../../wp-load.php' );
nocache_headers();
$post_ID = isset($_POST['post_ID']) ? (int) $_POST['post_ID'] : 0;
if ($post_ID!=0 ) {
    $post_views = (int) get_post_meta($post_ID, 'views', true);
        if (!update_post_meta($post_ID, 'views', ($post_views + 1))) {
            add_post_meta($post_ID, 'views', 1, true);
        }
    $post_views = (int) get_post_meta($post_ID, 'views', true);
        print_r(json_encode(array('error' => 0, 'views' => 1, 'response' => $post_views)));
        exit;
}else{
    print_r(json_encode(array('error' => 1, 'views' => 0, 'response' => $post_views)));
        exit;
}
?>

该代码作用就是根据访问文章的id,更新数据库中该文章的访问量,也就是执行访问量加1操作,并返回最新的阅读量。

然后将该文件上传到主题下的action目录(如果没有,就自己就新建一个)

2)第二步:新建一个名为currentviews.js的js文件,代码如下:

function getpostviews(postid) {
    $.ajax({
        type: "POST",
        url: 'https://www.你的域名.com/wp-content/themes/你的主题目录/action/views.php',
        dataType: "json",
        data: {
            "post_ID": postid
        },
        success: function(data, textStatus, xhr) {
            if (data.error) {
                return false;
            } else {
                // 这里的样式换为自己的
                $(".currentviews").text("阅读量(" + data.response + " )");
            }
        }
    });
}

注意这里的.currentviews是我的阅读量标签对应的class样式,你根据自己的情况进行设置。
然后将文件上传至你的主题的assets存放静态资源的目录下,比如我的就放在/wp-content/themes/Git-alpha/assets/js目录下。

3)第三步:修改footer.php

这里有两种方式,一种是修改single.php文章页,在最后加上对currentviews.js的引用和一段js脚本代码,类似如下:

//引入js,主要次js依赖jQuery,需要放在最后
<script type="text/javascript" src="https://www.xxxx.com/wp-content/themes/Git-alpha/assets/js/currentviews.js"></script>
//调用接口代码
<script type="text/javascript">
    $(document).ready(function (){
        <?php echo 'getpostviews('.get_the_ID().');';?>
    });
</script> 

第二种方式是,为了避免在文章页加载该js,更建议放在footer.php下,通过is_single()方法判断只有是文章页的时候,才会调用更新文章阅读量的接口,因此找到主题下的footer.php,新增如下代码:

<?php if(is_single()){ ?>    
<script type="text/javascript">
    $(document).ready(function (){
        <?php echo 'getpostviews('.get_the_ID().');';?>
    });
</script> 
<?php }?>

这两种方式,选择一种就可以了。

4)第四步:最后重新刷新你网站的缓存,就能实现文章阅读量更新了。

使用此方法,就轻松解决了wordpress使用缓存或cdn后文章阅读量不更新的问题了。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/8226.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号