dede浏览次数代码该放哪里?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 DEDE建站 正文

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

dede浏览次数代码放在那里
(图片来源网络,侵删)

页(article_article.htm)中显示浏览次数

这是最常见的需求,即在用户打开一篇文章时,在页面上显示这篇文章被点击了多少次。

方法1:使用DedeCMS内置的click字段(最简单、推荐)

这是最标准、最简单的方法,适用于绝大多数情况。

  1. 找到模板文件: 登录你的DedeCMS后台,进入【模板】->【默认模板管理】,找到并打开你当前使用的文章内容页模板,文件名通常是 article_article.htm

  2. 定位插入位置: 在模板文件中,找到你希望显示浏览次数的位置,通常是在文章标题后面。

    dede浏览次数代码放在那里
    (图片来源网络,侵删)
  3. 插入调用代码: 在指定位置插入以下代码:

    浏览:<span id="click">[field:click/]</span> 次

    代码解释

    • [field:click/]:这是DedeCMS的底层字段调用标签,它会直接输出当前这篇文章的 click 字段的值,也就是浏览次数。
    • <span id="click">...</span>:用<span>标签包裹是为了方便后续使用JavaScript进行不刷新页面的更新(见方法3),即使不加span,直接使用[field:click/]也是可以的。

示例:

假设你的文章标题代码是这样的:

dede浏览次数代码放在那里
(图片来源网络,侵删)
<h1 class="title">[field:title/]</h1>

你可以修改为:

<h1 class="title">[field:title/]</h1>
<div class="info">
    作者:[field:writer/] &nbsp;&nbsp; 来源:[field:source/] &nbsp;&nbsp; 发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/] &nbsp;&nbsp; <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可以是clicktitlepubdate等,在大多数情况下,它和 [field:click/] 的效果是一样的,但 [field:click/] 作为底层标签,性能和灵活性通常更好。


在列表页(list_article.htm)显示文章的浏览次数

我们希望在文章列表页(首页、栏目页)就显示出每篇文章的浏览次数,以吸引点击。

  1. 找到模板文件: 进入【模板】->【默认模板管理】,打开列表页模板,通常是 list_article.htm

  2. 定位插入位置: 在循环文章的{dede:list}标签内部,找到你希望显示浏览次数的位置,比如文章标题旁边。

  3. 插入调用代码:页一样,使用底层字段标签。

    {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/] 即可,其他方法作为了解,可以在有特殊需求时使用。

-- 展开阅读全文 --
头像
51单片机C语言入门,从何学起?
« 上一篇 01-11
dede如何调用文章第一张图片?
下一篇 » 01-11

相关文章

取消
微信二维码
支付宝二维码

目录[+]