后台直接修改(最简单,适合新手)
这是最直接的方法,无需修改任何代码,但缺点是每次更新栏目缓存后,排序会恢复为默认的按发布时间倒序。

操作步骤:
-
登录 DedeCMS 后台。
-
进入 【核心】 -> 频道管理】。
-
找到您需要修改的 “栏目名称”,点击后面的 [管理] 按钮。
-
在栏目管理页面,您会看到文章列表,点击列表上方的 “ID” 列标题,即可进行升序或降序排序。
-
排序完成后,点击页面底部的 “确定” 按钮保存。
优点:
- 操作简单,无需代码知识。
- 见效快。
缺点:
- 临时性:当您在后台对栏目进行任何操作(如更新栏目缓存、添加/删除文章等)后,这个排序会重置回默认状态。
- 不适合需要固定排序方式的场景。
修改 PHP 模板文件(最常用,推荐)
这是最稳定、最常用的方法,通过修改列表页的模板文件 list_*.php 来永久改变排序规则。
操作步骤:
-
找到模板文件: 登录您的 FTP 或主机管理面板,进入网站根目录下的
/templets/default/目录(如果您使用了自定义模板,请进入您自己的模板目录)。 找到与您栏目对应的列表模板文件,文件名通常为list_栏目ID.php,栏目ID为 1 的文件就是list_1.php。 -
修改排序参数: 用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开这个
list_*.php文件。 找到类似下面的代码行(通常在文件的开头部分):$typeid = isset($typeid) ? $typeid : 0; $channelid = isset($channelid) ? $channelid : 1;
在这行代码后面,添加一行代码来指定排序方式。
-
按 ID 降序排列(最新的在最前面):
$orderby = 'id'; // 添加这一行
在 DedeCMS 中,
id默认就是降序排列。 -
按 ID 升序排列(最旧的在最前面):
$orderby = 'id ASC'; // 添加这一行
ASC是升序的关键字。
修改后的文件开头部分看起来像这样:
<?php require_once(dirname(__FILE__)."/../include/config_base.php"); require_once(DEDEINC."/arc.listview.class.php"); // 获取并处理请求参数 $typeid = isset($typeid) ? $typeid : 0; $channelid = isset($channelid) ? $channelid : 1; // --- 在这里添加您的排序规则 --- $orderby = 'id'; // 按ID降序排列 // 实例化列表类 $lv = new ListView($typeid,$channelid); ?>
-
-
保存文件并更新: 保存修改后的
list_*.php文件。 去 DedeCMS 后台,找到对应的栏目,点击 [更新栏目缓存],刷新您的列表页,就能看到效果了。
优点:
- 永久有效:设置后不会因为后台操作而重置。
- 针对性强:只修改特定栏目的排序方式,不影响其他栏目。
缺点:
- 需要修改文件,对新手有一定门槛。
修改核心文件(一劳永逸,适合所有栏目)
如果您希望网站所有列表页都默认按 ID 排序,可以修改 DedeCMS 的核心文件。(修改核心文件有风险,请务必先备份!)
操作步骤:
-
备份文件:在修改前,请务必备份
/include/arc.listview.class.php文件。 -
找到并修改默认值: 用代码编辑器打开
/include/arc.listview.class.php文件。 搜索if($orderby=='')或类似的代码块,找到$orderby变量的默认赋值语句。通常在
function __construct()构造函数中,您会找到类似这样的代码:if(empty($orderby)) { $orderby = 'id DESC'; } -
修改默认排序: 将
id DESC修改为您想要的默认排序方式。- 按ID降序(默认):
$orderby = 'id DESC'; - 按ID升序:
$orderby = 'id ASC';
// 修改前 if(empty($orderby)) { $orderby = 'id DESC'; } // 修改后 (改为升序) if(empty($orderby)) { $orderby = 'id ASC'; } - 按ID降序(默认):
-
保存文件: 保存修改后的
arc.listview.class.php文件。 去 DedeCMS 后台,对所有栏目执行 [更新栏目缓存] 操作。
优点:
- 全局生效:一次修改,所有列表页都遵循新规则。
- 无需为每个栏目单独设置。
缺点:
- 风险较高:修改了核心文件,如果未来升级 DedeCMS,这些修改会被覆盖。
- 影响范围广,不适合只需要部分栏目特殊排序的情况。
总结与推荐
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台排序 | 简单、快速、无需代码 | 临时性,易被重置 | 临时查看、快速调整,不需要固定排序。 |
| 修改模板 | 稳定、灵活、针对性强 | 需要修改文件 | 强烈推荐,适用于绝大多数需要固定排序的场景。 |
| 修改核心 | 全局生效,一劳永逸 | 风险高,影响范围广 | 确定整个网站都需要按ID排序,且不介意修改核心文件。 |
对于绝大多数用户,*方案二(修改 `list_.php` 模板文件)是最佳选择**,它在灵活性和稳定性之间取得了最好的平衡。
