dede如何调用点击次数?

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

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

这是 DedeCMS 内置的、最直接的方法,适用于绝大多数场景,尤其是在列表页(如首页、栏目页)和文章内容页。

dede 调用点击次数
(图片来源网络,侵删)

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

在列表页的循环标签 {dede:list}{dede:arclist} 内部,使用 [field:click/] 即可。

示例代码:

{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>点击:[field:click/] 次</span>
    </li>
{/dede:list}

或者使用 arclist

{dede:arclist titlelen='40' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>点击:[field:click/] 次</span>
    </li>
{/dede:arclist}

页(如 article_article.htm)中调用

页,调用当前文章的点击次数同样使用 [field:click/]

示例代码:

dede 调用点击次数
(图片来源网络,侵删)
<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;
    点击次数:<strong>[field:click/]</strong> 次
</div>

使用自定义函数(灵活、可扩展)

如果你想在点击次数后面加上自定义的文字,或者对数字进行格式化(加上“万”),使用自定义函数会更灵活。

创建自定义函数文件

include/extend.func.php 文件中(如果这个文件不存在,请自己创建一个),添加以下 PHP 函数代码:

/**
 * 格式化点击次数
 * @param int $click 点击次数
 * @return string 格式化后的字符串
 */
function GetClickFormat($click) {
    if ($click > 10000) {
        return round($click / 10000, 1) . '万';
    } else if ($click > 1000) {
        return round($click / 1000, 1) . 'k';
    }
    return $click;
}

代码解释:

  • 这个函数 GetClickFormat 接收一个点击次数 $click
  • 如果点击数大于 10000,就除以 10000 并保留一位小数,然后加上“万”字。
  • 如果点击数大于 1000,就除以 1000 并保留一位小数,然后加上“k”。
  • 否则,就直接返回原始数字。

在模板中调用自定义函数

在模板文件中,使用 {dede:field} 标签的 function 属性来调用你刚刚创建的函数。

示例代码(在列表页或内容页):

{dede:list}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>人气:{dede:field.click function='GetClickFormat(@me)'/}</span>
    </li>
{/dede:list}

示例代码(在内容页):

<div class="info">
    ...
    点击次数:<strong>{dede:field.click function='GetClickFormat(@me)'/}</strong>
</div>
  • @me 是 DedeCMS 模板引擎中的一个特殊变量,代表当前字段的原始值,在这里就是 [field:click/] 的值。

手动获取点击次数(用于特殊布局或JS调用)

如果你需要在模板的 PHP 代码块或者一个特殊的位置获取点击次数,可以直接使用 PHP 代码查询数据库。

示例代码(在模板文件中):

<?php
    // 获取当前文章的ID
    $aid = $arcID;
    // 查询数据库获取点击次数
    $dsql = new DedeSql(false);
    $row = $dsql->GetOne("SELECT click FROM `dede_archives` WHERE id = $aid");
    if (is_array($row)) {
        $click_num = $row['click'];
        echo "这篇文章的点击次数是:" . $click_num . " 次";
    } else {
        echo "文章不存在或无法获取点击次数";
    }
    $dsql->Close();
?>

注意:

  • 这种方法会破坏模板的“标签化”风格,通常只在非常特殊的情况下使用。
  • 在模板中直接写 PHP 代码,需要确保你的服务器环境支持,并且开启了模板 PHP 解析功能(默认是开启的)。

重要补充:如何开启/更新点击次数?

DedeCMS 的点击次数是通过一个名为 plus 的 JavaScript 代码来统计和更新的,如果你的文章点击次数一直是 0,请检查以下几点:

  1. 检查 JS 文件是否存在 在你的网站根目录下,必须存在 plus/count.php 这个文件,这是统计点击的核心脚本,如果丢失了,可以从你的 DedeCMS 安装包里找回。

  2. 检查模板中的 JS 调用 在你的文章内容页模板(article_article.htm)的 </body> 标签之前,必须有如下代码:

    <script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}"></script>
    • phpurl 会自动指向你的网站根目录下的 plus/ 文件夹。
    • aid 是文章 ID,mid 是模型 ID,这些参数是必需的,用于 count.php 准确地更新数据库。
  3. 检查后台设置 进入 DedeCMS 后台 -> 系统 -> 系统基本参数 -> 核心设置

    • 找到 是否启用织梦计数器 这个选项,确保它被设置为 “是”
    • 找到 文档点击计数方式,通常选择 “onclick” 即可。
  4. 手动更新数据库 如果以上都正确,但数据就是不对,可以手动执行一次 SQL 来更新所有文章的点击数为 0,然后重新访问文章测试。 在后台的 系统 -> SQL命令行工具 中,输入以下 SQL 语句并执行:

    UPDATE dede_archives SET click = 0;

    执行后,去前台刷新几篇文章,看看点击数是否开始增加了。

方法 适用场景 优点 缺点
[field:click/] 列表页、内容页等常规场景 最简单、最直接,官方原生支持 功能单一,无法自定义格式
自定义函数 需要对点击数进行格式化、添加单位等 非常灵活,可扩展性强 需要修改PHP文件,对新手稍有门槛
PHP代码查询 特殊布局、JS调用、复杂逻辑 功能最强大,完全可控 破坏模板结构,代码可读性差,不推荐常规使用

对于 99% 的需求,方法一 已经足够,如果你需要更美观的显示,方法二 是最佳选择。

-- 展开阅读全文 --
头像
织梦系统SEO教程,新手如何快速上手优化?
« 上一篇 03-31
织梦图集内容怎么调用
下一篇 » 03-31

相关文章

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