dede列表页如何按ID排序?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 DEDE建站 正文

后台直接修改(最简单,适合新手)

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

dede 列表页按id排序
(图片来源网络,侵删)

操作步骤:

  1. 登录 DedeCMS 后台

  2. 进入 【核心】 -> 频道管理】

  3. 找到您需要修改的 “栏目名称”,点击后面的 [管理] 按钮。

  4. 在栏目管理页面,您会看到文章列表,点击列表上方的 “ID” 列标题,即可进行升序或降序排序。

  5. 排序完成后,点击页面底部的 “确定” 按钮保存。

优点:

  • 操作简单,无需代码知识。
  • 见效快。

缺点:

  • 临时性:当您在后台对栏目进行任何操作(如更新栏目缓存、添加/删除文章等)后,这个排序会重置回默认状态。
  • 不适合需要固定排序方式的场景。

修改 PHP 模板文件(最常用,推荐)

这是最稳定、最常用的方法,通过修改列表页的模板文件 list_*.php 来永久改变排序规则。

操作步骤:

  1. 找到模板文件: 登录您的 FTP 或主机管理面板,进入网站根目录下的 /templets/default/ 目录(如果您使用了自定义模板,请进入您自己的模板目录)。 找到与您栏目对应的列表模板文件,文件名通常为 list_栏目ID.php,栏目ID为 1 的文件就是 list_1.php

  2. 修改排序参数: 用代码编辑器(如 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);
    ?>
  3. 保存文件并更新: 保存修改后的 list_*.php 文件。 去 DedeCMS 后台,找到对应的栏目,点击 [更新栏目缓存],刷新您的列表页,就能看到效果了。

优点:

  • 永久有效:设置后不会因为后台操作而重置。
  • 针对性强:只修改特定栏目的排序方式,不影响其他栏目。

缺点:

  • 需要修改文件,对新手有一定门槛。

修改核心文件(一劳永逸,适合所有栏目)

如果您希望网站所有列表页都默认按 ID 排序,可以修改 DedeCMS 的核心文件。(修改核心文件有风险,请务必先备份!)

操作步骤:

  1. 备份文件:在修改前,请务必备份 /include/arc.listview.class.php 文件。

  2. 找到并修改默认值: 用代码编辑器打开 /include/arc.listview.class.php 文件。 搜索 if($orderby=='') 或类似的代码块,找到 $orderby 变量的默认赋值语句。

    通常在 function __construct() 构造函数中,您会找到类似这样的代码:

    if(empty($orderby))
    {
        $orderby = 'id DESC';
    }
  3. 修改默认排序: 将 id DESC 修改为您想要的默认排序方式。

    • 按ID降序(默认):$orderby = 'id DESC';
    • 按ID升序:$orderby = 'id ASC';
    // 修改前
    if(empty($orderby))
    {
        $orderby = 'id DESC';
    }
    // 修改后 (改为升序)
    if(empty($orderby))
    {
        $orderby = 'id ASC';
    }
  4. 保存文件: 保存修改后的 arc.listview.class.php 文件。 去 DedeCMS 后台,对所有栏目执行 [更新栏目缓存] 操作。

优点:

  • 全局生效:一次修改,所有列表页都遵循新规则。
  • 无需为每个栏目单独设置。

缺点:

  • 风险较高:修改了核心文件,如果未来升级 DedeCMS,这些修改会被覆盖。
  • 影响范围广,不适合只需要部分栏目特殊排序的情况。

总结与推荐

方案 优点 缺点 适用场景
后台排序 简单、快速、无需代码 临时性,易被重置 临时查看、快速调整,不需要固定排序。
修改模板 稳定、灵活、针对性强 需要修改文件 强烈推荐,适用于绝大多数需要固定排序的场景。
修改核心 全局生效,一劳永逸 风险高,影响范围广 确定整个网站都需要按ID排序,且不介意修改核心文件。

对于绝大多数用户,*方案二(修改 `list_.php` 模板文件)是最佳选择**,它在灵活性和稳定性之间取得了最好的平衡。

-- 展开阅读全文 --
头像
织梦fileid 15是什么?如何使用?
« 上一篇 02-12
织梦生成sitemap,具体如何操作?
下一篇 » 02-12

相关文章

取消
微信二维码
支付宝二维码

目录[+]