文章排序概述
织梦CMS在调用栏目文章时,支持通过 orderby 参数对文章列表进行多种方式的排序。掌握排序技巧可以灵活控制栏目页和首页文章的展示顺序,实现新闻按时间排列、热门内容优先展示等效果。
一、orderby 参数支持的值
| 排序值 | 说明 | 适用场景 |
|---|---|---|
pubdate | 按发布时间排序(默认) | 新闻、资讯类栏目 |
senddate | 按文档生成日期排序 | 与pubdate类似 |
id | 按文章ID排序 | 按录入顺序排列 |
click | 按点击量排序 | 热门文章排行 |
lastpost | 按最后评论时间排序 | 论坛、互动类 |
scores | 按评分排序 | 评分系统 |
goodpost | 按好评数排序 | 内容评价 |
badpost | 按差评数排序 | 少用 |
rand | 随机排序 | 随机推荐 |
hot | 按点击权重排序 | 热度优先 |
sortrank | 按排序权重排序 | 手动排序 |
title | 按标题字母顺序排序 | 字典排序 |
二、升降序控制
在 orderby 后添加 asc 或 desc 控制排序方向:
<!-- 按发布时间升序(旧文章在前) -->
{dede:arclist typeid='3' row='10' orderby='pubdate asc'}
<!-- 按发布时间降序(新文章在前,默认) -->
{dede:arclist typeid='3' row='10' orderby='pubdate desc'}
<!-- 按点击量降序(热度最高在前) -->
{dede:arclist typeid='5' row='10' orderby='click desc'}
三、常见排序场景示例
3.1 最新文章列表
<!-- 栏目最新发布的10篇文章 -->
{dede:arclist typeid='3' row='10' orderby='pubdate' titlelen='40'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<em>[field:pubdate function="MyDate('m-d',@me)"/]</em>
</li>
{/dede:arclist}
3.2 热门文章排行榜
<!-- 本周/本月热门(按点击量) -->
{dede:arclist typeid='3' row='10' orderby='click' titlelen='36'}
<li class="rank-{dede:global name='autoindex'/}">
<span class="num">{dede:global name='autoindex'/}</span>
<a href="[field:arcurl/]">[field:title/]</a>
<span class="view">[field:click/]次</span>
</li>
{/dede:arclist}
3.3 随机推荐文章
<!-- 随机调取文章,增加内容曝光 -->
{dede:arclist typeid='3' row='5' orderby='rand' titlelen='40'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
3.4 复合排序(热度+时间)
<!-- 使用hot按点击权重排序,兼顾热度和新鲜度 -->
{dede:arclist typeid='3' row='10' orderby='hot' titlelen='40'}
<!-- SQL标签实现复合排序 -->
{dede:sql sql="SELECT * FROM dede_archives
WHERE typeid=3 AND arcrank=0
ORDER BY click DESC, pubdate DESC LIMIT 10"}
<li><a href="/plus/view.php?aid=[field:id/]">[field:title/]</a></li>
{/dede:sql}
四、在栏目管理后台设置默认排序
每个栏目可以设置独立默认排序规则:
- 进入
核心 > 栏目管理 - 点击目标栏目的"更改"
- 在"栏目列表页"相关设置中找到"列表排序方式"
- 选择默认排序方式后保存
SEO优化建议:对于新闻资讯类栏目,使用
orderby='pubdate' 排序有利于搜索引擎及时收录最新内容;对于下载/产品类栏目,使用 orderby='sortrank' 配合 sortrank 字段可实现手动控制展示顺序。