Typecho文章阅读统计,增加浏览计数功能
Typecho 默认没有文章阅读量统计,需要借助插件或手动修改主题模板来实现。
本文从零开始,带你完成浏览计数功能的添加,最终效果是每篇文章底部或列表页能显示该文章的阅读次数,并且每次刷新会自动累加。
整个过程在宝塔面板或 SSH 下均可操作。
安装阅读统计插件
Typecho 最常用的方案是安装 Views 或 TeViews 插件。
以 Views 为例,下载插件压缩包后,解压到 /www/wwwroot/你的站点目录/usr/plugins/ 下,确保目录名为 Views,里面包含 Plugin.php。
登录 Typecho 后台,进入 控制台 → 插件,找到 Views 插件并点击 启用。
如果列表里没出现,检查目录权限:
chown -R www:www /www/wwwroot/你的站点目录/usr/plugins/Views
chmod -R 755 /www/wwwroot/你的站点目录/usr/plugins/Views
启用后插件会自动在文章表中增加 views 字段存储计数,无需手动建表。
修改主题模板输出计数
插件只负责记录数据,显示还需要改模板。
进入 外观 → 编辑当前外观,找到 post.php 或 index.php。
在希望显示阅读量的位置插入代码:
views(); ?> 次阅读
如果主题使用 functions.php 自定义输出,也可以写成:
echo '阅读 ' . $this->views . ' 次';
保存后刷新文章页,应该能看到“xx 次阅读”。
第一次显示为 0 是正常的,访问一次后变为 1。
常见报错与避坑
调用 $this->views() 报错 undefined method:说明插件未启用或主题未加载插件接口,回到后台确认插件状态。
计数一直是 0:检查插件目录权限,Linux 下 web 用户必须对插件目录有写权限;
另外部分缓存插件会缓存页面,导致计数不增加,需要在缓存设置中排除文章页或关闭页面缓存测试。
计数增长过快:默认每次刷新都加 1,如果希望同一 IP 或同一会话只计一次,需要插件支持或自行在 Plugin.php 中增加判断逻辑,不建议直接改核心文件。
修改模板后页面空白:PHP 语法错误,恢复备份的 post.php 再逐行检查,注意不要漏掉分号或 闭合。
php ?
>
验证计数是否生效
完成以上步骤后,用浏览器无痕模式打开一篇文章,记录当前显示的数字,刷新一次页面,再查看数字是否加 1。
如果加 1 成功,说明浏览计数功能已正常工作。
也可以直接查数据库确认:
SELECT views FROM typecho_contents WHERE cid = 文章ID;
将文章 ID 替换为实际值,如果 views 字段有数值且随访问增加,说明数据写入正常。
常见疑问
Typecho 阅读统计会影响网站速度吗?
插件每次访问会执行一次数据库更新,访问量不大时几乎无感知;如果文章流量很高,建议配合缓存或改用异步统计方案。
更换主题后计数会丢失吗?
不会,计数存在数据库中,换主题只需重新在模板里加入输出代码即可。
不想用插件可以手动实现吗?
可以,在主题 functions.php 中写函数,通过 Typecho_Db 更新 views 字段,但需要自己处理防刷和字段创建,对新手来说插件更省事。
按本文步骤操作后,你的 Typecho 博客就能显示每篇文章的阅读次数。
如果计数不增加,优先检查插件权限和缓存设置,这两处是新手最容易卡住的地方。