织梦如何调用文章点击数?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 织梦建站 正文

核心原理

织梦的文章点击数存储在 dede_archives 数据表的 click 字段中,我们的任务就是通过织梦的标签,读取这个字段的值并显示出来。

织梦调用文章点击数
(图片来源网络,侵删)

使用默认的 click 标签(最简单)

这是最直接、最常用的方法,适用于绝大多数场景。

在文章列表页(如 index.htm, list_article.htm)调用

在文章列表模板中,通常在循环标签 {dede:arclist} 内部使用。

标签代码:

{dede:aritle row='10' titlelen='50'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <!-- 点击数调用 -->
    <span>点击:[field:click/]</span>
  </li>
{/dede:aritle}

说明:

织梦调用文章点击数
(图片来源网络,侵删)
  • [field:click/] 会直接输出当前文章的点击数。
  • 这个数字默认是不带任何格式(如千位分隔符)的纯数字。

页(如 article_article.htm)调用

在文章详情页模板中,直接使用 click 标签即可。

标签代码:

<h1>[field:title/]</h1>
<div class="info">
  发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/] &nbsp;&nbsp;
  作者:[field:writer/] &nbsp;&nbsp;
  来源:[field:source/] &nbsp;&nbsp;
  <!-- 点击数调用 -->
  点击:[field:click/]
</div>

说明:页,[field:click/] 同样会输出当前正在浏览的这篇文章的点击数。


自定义点击数格式(如添加千位分隔符)

默认的 [field:click/] 输出的是 12345 这样的数字,如果我们希望显示为 12,345,可以使用 function 属性来调用PHP函数进行格式化。

织梦调用文章点击数
(图片来源网络,侵删)

标签代码:

{dede:aritle row='10' titlelen='50'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <!-- 使用 number_format 函数格式化点击数 -->
    <span>点击:[field:click function="number_format(@me)"/]</span>
  </li>
{/dede:aritle}

说明:

  • function="number_format(@me)" 的意思是:
    • @me:代表当前字段的原始值,也就是 click 字段的值。
    • number_format():是PHP内置的函数,用于给数字添加千位分隔符。
  • 这样,点击数 12345 就会显示为 12,345

获取总点击数(全站文章点击量之和)

有时候你可能想在首页的某个位置显示全站所有文章的总点击量,这需要用到 {dede:sql} 标签来执行自定义的SQL查询。

标签代码:

{dede:sql sql="SELECT SUM(click) as total_click FROM dede_archives"}
  全站文章总点击量:<strong>[field:total_click/]</strong>
{/dede:sql}

说明:

  • sql="...":在这里编写SQL查询语句。
  • SELECT SUM(click) as total_click FROM dede_archives:这条SQL语句的含义是,从 dede_archives 表中,计算出 click 字段的总和,并将这个结果命名为 total_click
  • [field:total_click/]:通过这个标签来获取SQL查询结果中 total_click 这个字段的值。

修改点击数统计方式(重要补充)

默认情况下,织梦的点击数统计是基于 Cookie 的,即同一个用户(同一个浏览器)在24小时内多次点击同一篇文章,只会计数一次,这在一定程度上保证了数据的真实性。

如果你需要修改这个行为,比如改成每次点击都计数,或者改成基于IP的计数,你需要修改织梦的核心文件。

修改步骤:

  1. 找到核心文件: 文件路径为:/include/count.php

  2. 修改统计逻辑: 打开 count.php 文件,找到类似下面的代码段:

    // 24小时内不重复点击
    if($maintime - $ctime < 3600 * 24) {
        exit();
    }
    • 修改为每次点击都计数: 将上面的 if 判断语句注释掉或者删除,这样每次访问都会增加点击数。

      // 注释掉或删除这行,即可实现每次点击都计数
      // if($maintime - $ctime < 3600 * 24) {
      //     exit();
      // }
    • 修改为基于IP的计数: 默认是基于Cookie的,要改成基于IP,你需要修改判断条件,找到 $ckip = GetIP(); 这行,然后将判断逻辑改为:

      // 基于IP的24小时点击限制
      $sql = "SELECT clickip FROM dede_log WHERE clickip='$ckip' AND arcid='$arcid' AND catid='$catid' AND clicktime > $ctime";
      $row = $dsql->GetOne($sql);
      if(is_array($row)) {
          exit();
      }

      注意:这个修改相对复杂,如果你不熟悉PHP和SQL,请谨慎操作,或者使用现成的插件。


总结与建议

场景 推荐方法 标签代码
文章列表页显示点击数 方法一 [field:click/]
页显示点击数 方法一 [field:click/]
美化点击数(加逗号) 方法二 [field:click function="number_format(@me)"/]
显示全站总点击量 方法三 {dede:sql sql="SELECT SUM(click) FROM dede_archives"}[field:total_click/]{/dede:sql}
修改点击统计规则 方法四 修改 /include/count.php 文件

对于绝大多数用户来说,方法一和方法二 已经完全够用,请根据你的具体需求选择合适的标签即可。

-- 展开阅读全文 --
头像
织梦文件管理器空白怎么办?
« 上一篇 今天
织梦5.x,系统升级有哪些新功能?
下一篇 » 今天

相关文章

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

目录[+]