在数据库层面进行排序,而不是依赖系统默认的字段。

(图片来源网络,侵删)
使用 id 排序(最常用、最推荐)
这是最简单、最直接的方法,DedeCMS 的栏目 ID 是自增的,通常按照添加的顺序递增,如果你想让栏目按照它们被创建的顺序(即 ID 顺序)显示,可以直接按 id 排序。
适用场景
- 新建网站,栏目按照你想要的顺序一个一个创建。
- 后期需要调整顺序时,可以在后台通过“栏目管理” -> “选择栏目” -> “上移/下移”来调整它们的 ID 顺序(这实际上是调整了它们在数据表中的物理位置)。
实现方法
在你需要调用栏目的模板文件中(通常是 include/typelinklist.htm 或其他自定义列表模板),找到栏目调用标签,修改 orderby 和 orderway 属性。
原始标签(默认按排序值降序):
{dede:channel type='top' row='8'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
修改为按 id 升序(即添加顺序):

(图片来源网络,侵删)
{dede:channel type='top' row='8' orderby='id' orderway='asc'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
参数解释:
orderby='id': 指定按栏目主键 ID 进行排序。orderway='asc': 指定排序方式为升序(从小到大,即 1, 2, 3...),如果你想要倒序,可以改为orderway='desc'。
使用自定义字段 sortrank 并手动赋值
如果你已经建好了很多栏目,并且不想通过调整 ID 来改变顺序,或者你希望有更灵活的、与栏目创建顺序无关的排序方式,那么最佳实践是使用系统自带的 sortrank 字段,并手动为每个栏目设置一个你想要的固定顺序值。
适用场景
- 网站已经建成,栏目很多,且 ID 顺序混乱。
- 你需要一个完全由自己控制的、与栏目创建无关的固定顺序。
- 希望未来能方便地调整顺序,而不需要修改数据库。
实现步骤
第一步:为每个栏目设置 sortrank 值
- 登录 DedeCMS 后台。
- 进入【核心】 -> 【栏目管理】。
- 找到你想要调整顺序的顶级栏目(或子栏目)。
- 点击栏目名称进入编辑页面。
- 在编辑页面,找到 “排序” 这个输入框(这个字段对应的数据库就是
sortrank)。 - 在这里输入一个固定的数字,这个数字的大小决定了栏目的先后顺序。数字越小,排序越靠前。
- 你希望“公司简介”排在第一,就给它输入
10。 - “产品中心”排在第二,就给它输入
20。 - “联系我们”排在第三,就给它输入
30。 - ...以此类推,为了方便以后插入新栏目,可以按 10 或 100 的步进值来设置,10, 20, 30... 或 100, 200, 300...
- 你希望“公司简介”排在第一,就给它输入
- 点击【确定】保存。
对所有需要固定顺序的栏目都重复此操作。

(图片来源网络,侵删)
第二步:修改模板调用标签
模板标签的写法和方法一类似,只是我们明确告诉它要按 sortrank 排序。
原始标签:
{dede:channel type='top' row='8'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
修改为按 sortrank 升序(即你设置的值从小到大):
{dede:channel type='top' row='8' orderby='sortrank' orderway='asc'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
参数解释:
orderby='sortrank': 明确指定按sortrank字段排序。orderway='asc': 升序排列,这样sortrank值为 10 的栏目就会排在值为 20 的栏目前面。
总结与对比
| 方法 | 优点 | 缺点 | 适用情况 |
|---|---|---|---|
按 id 排序 |
简单快捷,无需额外设置。 适合新站,栏目创建顺序即显示顺序。 |
顺序与栏目创建时间绑定,不够灵活。 后期调整顺序需要手动移动栏目,操作稍显繁琐。 |
新建网站,对顺序要求不高,或顺序基本固定。 |
按 sortrank 排序 |
灵活性最高,完全由自己控制。 调整顺序非常方便,只需后台改一个数字。 是 DedeCMS 的标准做法,符合系统设计逻辑。 |
需要手动为每个栏目设置一次初始值。 | 绝大多数情况下的首选方案,特别是对已建成或对顺序有明确、灵活要求的网站。 |
强烈推荐使用方法二,因为它更规范、更灵活,是处理栏目排序问题的最佳实践。
