浏览次数的调用代码通常放在需要显示数字的页模板中,最常见的位置是文章标题的下方、文章内容的上方或下方。

页(article_article.htm)中显示浏览次数
这是最常见的需求,即在用户打开一篇文章时,在页面上显示这篇文章被点击了多少次。
方法1:使用DedeCMS内置的click字段(最简单、推荐)
这是最标准、最简单的方法,适用于绝大多数情况。
-
找到模板文件: 登录你的DedeCMS后台,进入【模板】->【默认模板管理】,找到并打开你当前使用的文章内容页模板,文件名通常是
article_article.htm。 -
定位插入位置: 在模板文件中,找到你希望显示浏览次数的位置,通常是在文章标题后面。
(图片来源网络,侵删) -
插入调用代码: 在指定位置插入以下代码:
浏览:<span id="click">[field:click/]</span> 次
代码解释:
[field:click/]:这是DedeCMS的底层字段调用标签,它会直接输出当前这篇文章的click字段的值,也就是浏览次数。<span id="click">...</span>:用<span>标签包裹是为了方便后续使用JavaScript进行不刷新页面的更新(见方法3),即使不加span,直接使用[field:click/]也是可以的。
示例:
假设你的文章标题代码是这样的:

<h1 class="title">[field:title/]</h1>
你可以修改为:
<h1 class="title">[field:title/]</h1>
<div class="info">
作者:[field:writer/] 来源:[field:source/] 发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/] <span>浏览:<span id="click">[field:click/]</span> 次</span>
</div>
方法2:使用click()函数调用(不常用,但存在)
在某些旧模板或特定场景下,你可能会看到使用函数调用的方式。
代码:
浏览:{dede:field.click/} 次
或者
浏览:<span id="click">{dede:field.click/}</span> 次
说明:
{dede:field.name/} 这种写法也是调用文章字段,name可以是click、title、pubdate等,在大多数情况下,它和 [field:click/] 的效果是一样的,但 [field:click/] 作为底层标签,性能和灵活性通常更好。
在列表页(list_article.htm)显示文章的浏览次数
我们希望在文章列表页(首页、栏目页)就显示出每篇文章的浏览次数,以吸引点击。
-
找到模板文件: 进入【模板】->【默认模板管理】,打开列表页模板,通常是
list_article.htm。 -
定位插入位置: 在循环文章的
{dede:list}标签内部,找到你希望显示浏览次数的位置,比如文章标题旁边。 -
插入调用代码:页一样,使用底层字段标签。
{dede:list} <li> <span class="click">[field:click/]</span> <a href="[field:arcurl/]">[field:title/]</a> </li> {/dede:list}
说明:
在列表页中,[field:click/] 会循环输出当前列表中每篇文章的浏览次数。
实现“点击一次,数字+1”并实时更新(无需刷新页面)
默认情况下,浏览次数的增加是在页面加载时由服务器完成的,如果你希望用户点击文章链接时,数字才增加并且能立即在页面上看到变化(无刷新),就需要结合JavaScript来实现。
这需要修改两个地方:列表页模板和文章内容页模板。
步骤1:修改列表页模板 (list_article.htm)
将文章链接从 <a href="..."> 修改为 <a href="javascript:;" onclick="getClickCount(this, '[field:id]')">。
{dede:list}
<li>
<span class="click" id="click_[field:id]">[field:click/]</span>
<!-- 将原来的链接改为下面的形式 -->
<a href="javascript:;" onclick="getClickCount(this, '[field:id]'); window.location.href='[field:arcurl/]';">
[field:title/]
</a>
</li>
{/dede:list}
代码解释:
id="click_[field:id]":给每个显示浏览次数的span一个唯一的ID,包含文章ID,方便JavaScript精确查找。onclick="getClickCount(this, '[field:id]');":当用户点击链接时,先执行getClickCount函数。window.location.href='[field:arcurl/]';":在执行完计数后,再跳转到真正的文章页面。
步骤2:修改文章内容页模板 (article_article.htm)
在<head>标签内或<body>标签底部引入以下JavaScript代码。
<script type="text/javascript">
// 获取点击次数
function getClickCount(obj, aid) {
// 创建一个Ajax对象
var ajax = null;
if (window.XMLHttpRequest) {
ajax = new XMLHttpRequest();
} else {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
// 定义请求的URL,这里调用DedeCMS自用的plus/count.php
// 注意:如果你的DedeCMS安装在其他目录,请相应修改路径
var url = "{dede:global.cfg_cmspath/}/plus/count.php?view=yes&aid=" + aid;
// 配置Ajax请求
ajax.open("GET", url, true);
ajax.send();
// 当Ajax请求完成并成功返回时
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
// 获取服务器返回的新点击数
var count = ajax.responseText;
// 更新页面上的显示
document.getElementById("click_" + aid).innerHTML = count;
}
};
}
</script>
代码解释:
- 这个
getClickCount函数会向plus/count.php发送一个异步请求。 plus/count.php是DedeCMS自带的一个专门用于处理点击次数的脚本。view=yes&aid=文章ID是传递给该脚本的参数,意思是“查看并增加ID为XX的文章的点击次数”。- 当脚本成功返回新的点击数后,JavaScript会找到页面中对应的
span元素,并更新其内容。
| 需求场景 | 推荐代码 | 放置位置 |
|---|---|---|
| 页显示 | <span id="click">[field:click/]</span> |
article_article.htm 模板的标题或信息区 |
| 列表页显示 | [field:click/] |
list_article.htm 模板的 {dede:list} 循环体内 |
| 无刷新增加点击 | JS函数 + 修改链接 |
list_article.htm 修改链接article_article.htm 加入JS代码 |
对于99%只需要掌握方法1,在article_article.htm中使用 [field:click/] 即可,其他方法作为了解,可以在有特殊需求时使用。
