第一步:记录文章点击量
要让系统能统计点击量,首先需要在文章被点击时,更新该文章的点击次数,最常用的方法是在文章内容页 (article_article.htm) 模板中添加一个记录点击量的JS代码。

操作步骤:
-
打开文章内容页模板 登录你的 DedeCMS 后台,进入【模板】->【默认模板管理】->【文章模板】->【文章内容页模板】,找到并编辑
article_article.htm文件。 -
添加JS代码 在
<head>和</head>标签之间,或者</body>标签之前,添加以下 JavaScript 代码,推荐放在</body>之前,这样不会影响页面主要内容加载。<script language="javascript" type="text/javascript"> //点击量统计 function dianji(){ var url = "{dede:field name='phpurl'/}/click.php?aid={dede:field name='id'/}"; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET",url,true); xmlhttp.send(); } // 页面加载完成后执行点击统计 window.onload = dianji; </script> -
确保
click.php文件存在 上面的代码会调用/plus/click.php文件,这个文件是 DedeCMS 自带的,用于处理点击量统计,通常位于网站的plus目录下,请确保这个文件存在并且没有被误删。
(图片来源网络,侵删) -
更新模板 保存并更新
article_article.htm模文件,每当有用户访问一篇文章,click.php就会被调用,该文章的点击次数就会在数据库中自动加 1。
第二步:创建点击量排名的调用标签
记录了点击量之后,我们就可以在首页、列表页等任何地方调用并显示一个点击量排行榜了,这需要修改相应的模板文件。
操作步骤:
-
准备模板文件 你可以在需要显示排行榜的页面(如首页
index.htm、栏目列表页list_article.htm等)中,添加一个用于显示排行榜的HTML结构,例如一个带有id的div。
(图片来源网络,侵删)<!-- 在首页模板 index.htm 的合适位置添加 --> <div class="hot-list"> <h3>热门文章</h3> <ul> {dede:arclist row='10' titlelen='50' orderby='click'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>(点击:[field:click/])</span> </li> {/dede:arclist} </ul> </div> -
使用核心标签
arclist上面代码中的关键部分是{dede:arclist}标签,我们来详细解释它的几个重要属性:row='10':表示调用 10 条文章记录。titlelen='50'最多显示 50 个字符,超出部分用省略号表示(需要CSS配合)。orderby='click':这是最关键的一步,它告诉 DedeCMS 按照click(点击量)字段进行排序,默认是降序(从高到低)。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:click/]:文章的当前点击量。
-
在首页调用(推荐) 最常见的做法是在首页显示一个全局的热门文章排行榜。
- 打开首页模板文件
index.htm。 - 在你希望显示排行榜的位置(比如侧边栏),粘贴上面的
arclist代码。 - 保存并更新首页模板。
- 打开首页模板文件
-
在栏目页调用 如果你只想在某个特定栏目下显示该栏目的热门文章,可以在该栏目的列表页模板(如
list_article.htm)中加入同样的代码,DedeCMS 会自动限定在该栏目内进行排序和调用。 -
更新缓存 修改完模板后,回到 DedeCMS 后台,点击【系统】->【一键更新网站】->【更新首页】和【更新栏目页】,让修改生效。
第三步:进阶与注意事项
如何按天/周/月统计点击量?
默认的 click 字段是累计总点击量,如果你需要统计“今日点击”、“本周点击”等,需要进行一些额外的设置。
方法:修改数据库和标签
-
修改数据库:
- 使用 phpMyAdmin 等工具登录你的数据库。
- 找到
dede_archives(或你前缀下的#@__archives)表。 - 为该表添加新的字段,
click_day(今日点击),click_week(本周点击),click_month(本月点击)。 - 字段类型建议设置为
int(10)unsigned,默认值为 0。
-
修改
click.php:- 打开
/plus/click.php文件。 - 找到更新点击量的SQL语句,将其修改为同时更新多个字段,这需要编写更复杂的PHP代码,根据当前日期来判断是增加
click、click_day还是click_week等。这部分需要一定的PHP编程基础。
- 打开
-
修改调用标签:
- 在
arclist标签中,使用orderby属性指定新的字段名。 - 要调用今日点击排行榜:
{dede:arclist row='10' orderby='click_day'}。
- 在
注意:按天/周/月统计功能比较复杂,需要对系统文件进行二次开发,不适合新手。
常见问题排查
-
点击量不增加:
- 检查
article_article.htm模板中是否正确添加了JS代码。 - 检查
plus/click.php文件是否存在。 - 检查浏览器控制台 (F12) 是否有JS错误。
- 确保文章的
click字段在数据库中是数字类型。
- 检查
-
排行榜显示不正确:
- 检查
arclist标签中的orderby='click'是否写对。 - 确保模板已更新,并清除了浏览器缓存和DedeCMS的缓存。
- 检查是否有其他插件或模板修改冲突。
- 检查
-
排行榜显示的文章不是我想要的:
- 检查
arclist标签是否被typeid属性限定了栏目,如果不限,它会从全站调用,如果只想在某个栏目显示,加上typeid='栏目ID'。
- 检查
| 功能 | 实现方法 | 关键点 |
|---|---|---|
| 记录点击量 | 在 article_article.htm 模板中添加JS代码,调用 plus/click.php |
window.onload = dianji; |
| 调用总点击排名 | 使用 {dede:arclist orderby='click'} |
orderby='click' 是核心 |
| 调用今日点击排名 | 需要修改数据库和 click.php,增加 click_day 字段,然后用 orderby='click_day' |
需要二次开发,较复杂 |
对于绝大多数用户来说,第一步和第二步已经足够满足“点击量排名”的需求,希望这个详细的教程能帮到你!
