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

(图片来源网络,侵删)
这个功能主要通过两个核心标签来实现:
orderby:指定排序的字段。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。
常见排序字段列表
除了 pubdate 和 uptime,orderby 还支持很多其他字段,你可以根据需要组合使用:

(图片来源网络,侵删)
排序字段 (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}
要实现织梦按时间排序,你只需要记住:
- 使用
arclist。 - 设置
orderby='pubdate'(按发布时间)或orderby='uptime'(按更新时间)。 - 设置
orderway='desc'(最新的在前,降序)或orderway='asc'(最旧的在前,升序)。 - 需要复杂排序时,可以组合多个字段,如
orderby='sortrank,pubdate'。
掌握了这几个参数,你就可以灵活地控制织梦内容的各种时间排序需求了。
