这是一个非常常用且重要的功能,尤其是在首页、列表页和自定义图集中。

(图片来源网络,侵删)
要按发布时间进行排序,orderby 的值通常设置为 pubdate。
orderby 参数详解
orderby 是 DedeCMS 标签(如 {dede:arclist}, {dede:list})中的一个核心属性,用于指定数据排序的依据,除了 pubdate,它还支持多种排序方式:
| 排序值 | 英文全称 | 中文含义 | 说明 |
|---|---|---|---|
pubdate |
Publish Date | 发布时间 | 按文章的发布时间排序,这是最常用的。 |
sortrank |
Sort Rank | 排序级别 | 按后台“排序选项”中的数字排序,数字越小越靠前,这是默认排序方式。 |
id |
ID | 文章ID | 按文章的唯一ID号排序。 |
click |
Clicks | 点击量 | 按文章的点击次数排序,常用于“热门文章”。 |
arcrank |
Article Rank | 文章级别 | 按文章的等级(如“推荐”、“头条”等)排序。 |
postnum |
Post Number | 发布人ID | 按文章发布者的用户ID排序。 |
lastpost |
Last Post | 最后评论时间 | 按文章最后一次收到评论的时间排序。 |
scores |
Scores | 评分 | 按文章的评分排序。 |
rand |
Random | 随机 | 随机获取文章,每次刷新页面结果都不同。 |
在不同标签中的使用方法
a. 在首页或内容页调用文章 ({dede:arclist})
这是最常见的情况,比如在首页显示最新发布的文章列表。
基本语法:

(图片来源网络,侵删)
{dede:arclist 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}
参数解释:
row='10':表示获取 10 条记录。orderby='pubdate':核心,指定按“发布时间”排序。orderway='desc':指定排序方式,desc表示降序(从新到旧,即最新的在最前面),如果需要从旧到新,则使用asc(升序)。[field:arcurl/]:文章链接。[field:title/]。[field:pubdate function="MyDate('Y-m-d', @me)"/]:文章发布时间,并通过函数格式化为 "年-月-日" 的格式。
示例:调用网站最新的5篇推荐文章
{dede:arclist row='5' titlelen='30' orderby='pubdate' orderway='desc' flag='c'}
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p class="info">发布时间:[field:pubdate function="MyDate('Y-m-d', @me)"]</p>
{/dede:arclist}
flag='c':增加了flag属性,表示只调用带有“推荐”标记的文章。
b. 在列表页 ({dede:list})
列表页通常用于文章列表,如新闻列表、产品列表等,默认情况下,列表页就是按 sortrank 排序的,如果你想让它按发布时间排序,就需要修改。
修改方法:
- 打开你的列表页模板文件,通常是
/templets/default/list_*.htm( 代表栏目ID)。 - 找到
{dede:list}- 为其添加
orderby和orderway属性。 - 为其添加
修改前(默认按排序号):
{dede:list pagesize='20'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:list}
修改后(按发布时间降序):
{dede:list pagesize='20' orderby='pubdate' orderway='desc'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:list}
pagesize='20':表示每页显示 20 条记录。
c. 在自定义图集中 ({dede:productimagelist})
在产品详情页,图集的图片顺序也可以按发布时间排序。
语法:
{dede:productimagelist}
<dd>
<img src="[field:imgsrc/]" alt="[field:text/]">
<p>[field:text/]</p>
</dd>
{/dede:productimagelist}
默认情况下,图集顺序是后台上传的顺序,如果你想按图片上传时间(即发布时间)排序,可以加上 orderby:
{dede:productimagelist orderby='pubdate' orderway='desc'}
<dd>
<img src="[field:imgsrc/]" alt="[field:text/]">
<p>[field:text/]</p>
</dd>
{/dede:productimagelist}
常见问题与注意事项
-
pubdate和sortrank的区别pubdate:文章的实际发布时间,一旦确定就不会改变(除非你修改文章的发布日期)。sortrank:后台编辑文章时有一个“排序选项”的输入框,你可以手动输入一个数字来调整文章在列表中的位置,数字越小,越靠前,这是 DedeCMS 的默认排序方式。
-
orderway的使用desc(descending): 降序,从大到新/高到低。对于发布时间,desc是“最新的在前”,这是最常见的需求。asc(ascending): 升序,从小到大/旧到高,对于发布时间,asc是“最旧的在前”。
-
性能考虑
- 对于数据量非常大的网站,使用
orderby='rand'(随机排序) 会严重影响数据库性能,导致页面加载缓慢。 orderby='pubdate'和orderby='sortrank'是性能较好的排序方式。
- 对于数据量非常大的网站,使用
要实现 DedeCMS 按发布时间排序,你只需要记住以下几点:
- 核心参数:
orderby='pubdate' - 排序方向:通常搭配
orderway='desc'(最新的在前)。 - 应用标签:在
{dede:arclist}(首页/内容页)、{dede:list}(列表页) 和{dede:productimagelist}(图集) 等标签中使用。
希望这个详细的解释能帮助你完全掌握 DedeCMS 中按发布时间排序的用法!
