十字星

  • 首页
  • 技术
  • 随笔
  • 瞎折腾
  • 平面设计
  • 文集
  • 留言
  1. 首页
  2. 技术
  3. 正文

WordPress文章阅读量统计和显示(非插件,刷新页面不累加)

2020-08-29 255点热度 1人点赞 0条评论

每进入一次文章详情页面,就会通过cookie判断该用户是否在cookie有效期内访问过该文章,如果没有访问过,则浏览次数加一.

实现步骤如下:

1.添加如下代码至主题functions.php文件中,在文件最下面加入即可

function post_views_record()
{//设置 post 文章阅读次数
    if (is_singular()) {
        global $post;
        $post_ID = $post->ID;
        if ($post_ID) {            
            if(!isset($_COOKIE['views'.$post_ID.COOKIEHASH]) || $_COOKIE['views'.$post_ID.COOKIEHASH] != '1'){
                $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);
                }
                setcookie('views'.$post_ID.COOKIEHASH,'1');
            }
        }
    }
}

function get_post_views($before = '', $after = '')
{//读取 post 文章阅读次数
    global $post;
    $post_ID = $post->ID;
    $views   = (int) get_post_meta($post_ID, 'views', true);
    if ($views >= 1000) {
        $views = round($views / 1000, 2) . 'K';
    }
    return $before . $views . $after;
}

2,添加如下代码至主题header.php文件中,必须加在该文件最上方,否则setcookie始终返回false,不会生效,原因是setcookie()之前不能有任何HTTP头部输出

post_views_record();

3,添加如下代码至要显示浏览次数的位置,例如文章详情页single.php

<?php echo get_post_views();?>
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: PHP WordPress
最后更新:2020-08-29

cxw

技术宅,最喜瞎折腾.

点赞
< 上一篇
下一篇 >

文章评论

取消回复

最新 热点 随机
最新 热点 随机
删除名称最后带空格的文件夹 esxi无法直通sata控制器,只能使用rdm直通硬盘 Esxi总是会话超时需要重新登录,修改配置,增加超时时间 WinAPI函数SetupDiEnumDeviceInterfaces始终返回false解决方案 删除tmp文件夹内容导致网站503 Service Unavailable解决 SQL Server 附加数据库出错,操作系统错误 5:"5(拒绝访问。)" 错误:5120
删除tmp文件夹内容导致网站503 Service Unavailable解决esxi无法直通sata控制器,只能使用rdm直通硬盘WinAPI函数SetupDiEnumDeviceInterfaces始终返回false解决方案Esxi总是会话超时需要重新登录,修改配置,增加超时时间删除名称最后带空格的文件夹
WordPress使用Kratos主题,不用插件实现存档模板 C# 控件首次显示时,[Anchor]属性影响动态计算控件位置 宝贝语录 SQL Server 附加数据库出错,操作系统错误 5:"5(拒绝访问。)" 错误:5120 WPF中TreeView设置鼠标右键菜单 程序异常退出,重新启动后,自动清理系统托盘上残留的图标
标签聚合
PHP CentOS W10 IT Excel C# WinForm WordPress Hyper-V Linux
最近评论
alex 发布于 1 年前(01月22日) 博主,请问把代码贴到博客里可以复制是怎么实现的

COPYRIGHT © 2021 十字星. ALL RIGHTS RESERVED

THEME KRATOS MADE BY VTROIS

京ICP备2020032489号-1