织梦如何实现按时间排序判断功能?

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

当然可以,织梦CMS(DedeCMS)内置了强大的排序功能,可以非常方便地按时间对内容(文章、图集等)进行排序。

织梦可以判断按时间排序
(图片来源网络,侵删)

这个功能主要通过两个核心标签来实现:

  1. orderby:指定排序的字段。
  2. orderway:指定排序的方式(升序或降序)。

核心方法

按发布时间排序(最常用)

这是最常见的需求,最新文章”、“最新发布”等。

  • orderby='pubdate'pubdate 是织梦数据表中存储文章发布时间的字段。
  • orderway='desc'desc 表示降序,即从最新的到最旧的,这是“最新”排序的标准用法。
  • orderway='asc'asc 表示升序,即从最旧的到最新的。

示例:调用最新的10篇文章

{dede:arclist titlelen='30' row='10' orderby='pubdate' orderway='desc'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

代码解释:

织梦可以判断按时间排序
(图片来源网络,侵删)
  • {dede:arclist ...}:织梦的文章列表标签,len='30'`:标题长度限制为30个字符。
  • row='10':获取10条记录。
  • orderby='pubdate'关键,告诉织梦按 pubdate(发布时间)字段排序。
  • orderway='desc'关键,告诉织梦按降序排列,最新的在前。
  • [field:arcurl/]:文章链接。
  • [field:title/]
  • [field:pubdate ...]:文章发布时间,并用 function="MyDate()" 格式化为 年-月-日 的格式。

按更新时间排序

我们希望显示“最近更新”的文章,而不是“最近发布”的,这时就需要使用 uptime 字段。

  • orderby='uptime'uptime 是存储文章最后更新时间的字段。

示例:调用最近更新的10篇文章

{dede:arclist titlelen='30' row='10' orderby='uptime' orderway='desc'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>更新时间:[field:uptime function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

这个例子和上面的几乎一样,只是将 orderby 的值从 pubdate 换成了 uptime


常见排序字段列表

除了 pubdateuptimeorderby 还支持很多其他字段,你可以根据需要组合使用:

织梦可以判断按时间排序
(图片来源网络,侵删)
排序字段 (orderby 值) 说明 示例
sortrank 权重(后台设置的值),数字越大越靠前。 orderby='sortrank' orderway='desc'
id 文章ID,数字越大表示发布越晚。 orderby='id' orderway='desc'
click 点击量,按浏览次数排序。 orderby='click' orderway='desc'
postnum 评论数量。 orderby='postnum' orderway='desc'
pubdate 发布时间(默认)。 orderby='pubdate' orderway='desc'
senddate 录入时间(有时和发布时间不同)。 orderby='senddate' orderway='desc'
uptime 更新时间 orderby='uptime' orderway='desc'
rand 随机排序 orderby='rand' (orderway 无效)

高级应用:组合排序

织梦的 orderby 属性支持多个字段组合排序,用英文逗号隔开,排序的顺序会按照你写的字段顺序依次进行。

示例:先按“权重”降序,权重相同的再按“发布时间”降序

这种排序方式在网站首页非常常见,可以保证重要的文章(权重高)永远排在前面,同等级的文章则按发布时间排序。

{dede:arclist titlelen='30' row='10' orderby='sortrank,pubdate' orderway='desc,desc'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

代码解释:

  • orderby='sortrank,pubdate':先按 sortrank(权重)排序,如果权重相同,再按 pubdate(发布时间)排序。
  • orderway='desc,desc':分别对应上面的两个字段,都是降序,你也可以写成 orderway='desc',因为 desc 是默认值。

另一个例子:先按点击量降序,点击量相同的按发布时间升序

{dede:arclist titlelen='30' row='10' orderby='click,pubdate' orderway='desc,asc'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>点击:[field:click/] | 发布:[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

要实现织梦按时间排序,你只需要记住:

  1. 使用 arclist。
  2. 设置 orderby='pubdate'(按发布时间)或 orderby='uptime'(按更新时间)。
  3. 设置 orderway='desc'(最新的在前,降序)或 orderway='asc'(最旧的在前,升序)。
  4. 需要复杂排序时,可以组合多个字段,如 orderby='sortrank,pubdate'

掌握了这几个参数,你就可以灵活地控制织梦内容的各种时间排序需求了。

-- 展开阅读全文 --
头像
织梦猫模板下载后如何安装?
« 上一篇 今天
织梦附件拍照图片为何打不开?
下一篇 » 今天

相关文章

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