织梦orderby click如何实现点击量排序?

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

下面我将从基本用法实际应用示例常见问题及解决方案三个方面,为您详细解析 orderby=click 的使用方法。

织梦orderby click
(图片来源网络,侵删)

基本用法

orderby=click 是一个用在织梦标签 {dede:arclist}{dede:list} 中的属性。

{dede:arclist} 标签中使用

{dede:arclist} 通常用于首页、列表页等,用于调用文章列表,功能强大且灵活。

语法格式:

{dede:arclist orderby='click' row='10' titlelen='30'}
    <li>
        <a href='[field:arcurl/]'>[field:title/]</a>
        <span>(点击:[field:click/])</span>
    </li>
{/dede:arclist}

参数解释:

织梦orderby click
(图片来源网络,侵删)
  • orderby='click':这是核心参数,表示按照文章的点击次数(click 字段)进行排序,默认是降序排列,即点击数从高到低。
  • row='10':表示调用10条记录,len='30'`:表示标题最多显示30个字符。
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。
  • [field:click/]:文章的点击次数。

{dede:list} 标签中使用

{dede:list} 通常用于列表模板(list_*.htm)中,用于遍历当前栏目下的所有文章。

语法格式:

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

参数解释:

  • orderby='click':同样表示按点击次数排序。
  • pagesize='20':表示每页显示20条记录。

实际应用示例

示例1:首页热门文章推荐

这是最常见的用法,通常放在首页的侧边栏。

织梦orderby click
(图片来源网络,侵删)
<h3>热门文章</h3>
<ul class="hot-list">
    {dede:arclist orderby='click' row='8' titlelen='40'}
    <li>
        <span class="num">[field:global.autoindex/]</span>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a>
    </li>
    {/dede:arclist}
</ul>

这里使用了 [field:global.autoindex/] 来给列表项添加序号,function='cn_substr(@me,30)' 是对标题进行截断的另一种写法,效果等同于 titlelen='30'

示例2:栏目页内的点击排行

在某些列表页,你可能希望只显示当前栏目下的热门文章。

<h3>本栏目热门</h3>
<ol>
    {dede:list orderby='click' row='5' subday='30'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
    {/dede:list}
</ol>

这里使用了 subday='30' 参数,这是一个非常有用的附加参数,表示只调用最近30天内发布的文章,并按点击数排序,避免了很久以前的老文章因为点击数高而一直霸占排行榜。

示例3:全站热门文章(跨栏目)

如果你想调用全站所有栏目的热门文章,可以添加 channelid='all' 参数。

<h3>全站点击排行</h3>
<ul>
    {dede:arclist orderby='click' row='10' channelid='all'}
    <li>
        <span class="channel">[field:typename/]</span>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
    {/dede:arclist}
</ul>

这里 channelid='all' 表示调用所有频道(文章、图集等)的内容。[field:typename/] 用于显示文章所属的栏目名称。


常见问题及解决方案

问题1:为什么 orderby=click 不起作用?点击数一直是0?

原因分析: 最常见的原因是文章的点击次数没有被正确记录和更新,织梦默认是通过一个JS文件来统计点击的。

解决方案:

  1. 确保JS文件存在且被正确引用: 在文章内容页模板(article_article.htm)中,找到类似这样的代码,确保它没有被注释或删除:

    <script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script>

    这段代码会在每次文章页面被访问时,向 count.php 发送一个请求,从而增加点击数。

  2. 检查JS文件是否被浏览器拦截: 某些浏览器或安全软件可能会阻止这个JS文件的执行,导致点击数无法统计,可以尝试在浏览器开发者工具的“网络”面板中查看 count.php 请求是否存在。

  3. 手动更新点击数: 如果你的网站已经运行了一段时间,并且之前没有开启点击统计,你可以通过织梦后台的“一键更新网站”功能来手动更新所有文章的点击数。

    • 进入后台 -> “生成” -> “一键更新网站”。
    • 选择“开始执行更新” -> “更新所有内容页的点击次数”。
    • 执行完毕后,点击数就会被正确记录。

问题2:如何实现“点击量从高到低”和“从低到高”排序?

  • 默认(从高到低)orderby='click' 本身就是降序排列。
  • 从低到高:在 click 前面加上一个英文句号 ,即 orderby='.click'

示例:

<!-- 从低到高排序 -->
{dede:arclist orderby='.click' row='10'}
    ...
{/dede:arclist}

问题3:如何按“日点击”、“周点击”、“月点击”排序?

织梦数据库中除了总点击数 click 字段,还预设了 dayclick(日点击)、weekclick(周点击)、monthclick(月点击)字段,你只需要在 orderby 中指定这些字段即可。

示例:

<!-- 按今日点击排行 -->
<h3>今日热门</h3>
<ul>
    {dede:arclist orderby='dayclick' row='5' subday='1'}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:arclist}
</ul>
<!-- 按本周点击排行 -->
<h3>本周热门</h3>
<ul>
    {dede:arclist orderby='weekclick' row='5' subday='7'}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:arclist}
</ul>

注意:使用 dayclick, weekclick, monthclick 时,通常需要配合 subday 参数来限定时间范围,这样数据才更有意义。

orderby=click 是织梦实现热门文章功能的核心,要让它正常工作,关键在于确保点击统计的JS代码在文章页模板中正确加载,通过灵活运用 orderbychannelidsubday 等参数,你可以实现各种复杂和实用的点击排行效果,希望这份详细的指南能帮助您!

-- 展开阅读全文 --
头像
dede列表页autoindex如何实现自增序号?
« 上一篇 2025-12-17
C语言sample input如何正确使用?
下一篇 » 2025-12-17

相关文章

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

目录[+]