dede 按id 排序

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

在列表页(list_article.htm)按 ID 排序

这是最常见的需求,比如首页、栏目页、文章列表页等。

方法 1:直接修改列表页模板文件(推荐,最直接)

这是最简单直接的方法,无需修改任何程序文件。

  1. 打开你的列表页模板文件,通常位于 /templets/你的模板文件夹/ 目录下,文件名如 list_article.htm
  2. 找到 {dede:list}。
  3. 在标签内添加 orderby='id' 属性

修改前:

{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:list}

修改后(按 ID 从小到大排序,即正序):

{dede:list pagesize='10' orderby='id'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:list}

按 ID 从大到小排序(倒序):

{dede:list pagesize='10' orderby='id' orderway='desc'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:list}

参数解释:

  • orderby='id':指定按 id 字段进行排序。
  • orderway='desc':指定排序方式为降序(从大到小),如果不写,默认是 asc(升序,从小到大)。
  • pagesize='10':每页显示的文章数量,与排序无关,但通常会一起使用。

方法 2:通过自定义列表(后台设置)

如果你不想修改模板文件,或者这个排序是临时的、特定的需求,可以在后台创建一个自定义列表。

  1. 登录 DedeCMS 后台
  2. 进入 [核心] -> [自定义列表]
  3. 点击 “增加自定义列表”
  4. 填写列表信息
    • 列表名称:给你的列表起个名字,如“按ID排序的文章”。
    • 列表目录:生成列表文件的目录和名称,如 list-id-order.html
    • 列表模板:选择一个列表模板,如 list_article.htm
    • 按ID排序:在下面的“附加SQL条件”中输入 orderby=id
  5. 点击 “确定” 保存。
  6. 保存后,系统会提示你更新列表缓存,进入 [生成] -> [更新HTML],选择你刚刚创建的列表文件进行更新。

这样,访问 你的域名/list-id-order.html 就能看到按 ID 排序的文章列表了。


在首页(index.htm)调用按 ID 排序的内容

首页通常使用 {dede:arclist} 标签来调用文章。

方法:在 {dede:arclist} 标签中添加 orderby='id' 属性。

示例代码:

{dede:arclist titlelen='30' row='8' orderby='id' orderway='desc'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
{/dede:arclist}

参数解释:

  • orderby='id':指定按 ID 排序。
  • orderway='desc':按 ID 降序排列(最新的在前面),len='30'`:标题长度。
  • row='8':调用条数。

页(article_article.htm)调用相关文章/最新文章

页,调用相关文章或最新文章时,也可以按 ID 排序。

调用相关文章(通常按ID倒序,即最新发布的)

相关文章标签是 {dede:likearticle},它默认就倾向于调用 ID 靠近的文章,也就是新发布的文章,如果你想明确指定,可以加上参数。

{dede:likearticle row='10' orderby='id'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:likearticle}

调用最新文章(明确按ID倒序)

使用 {dede:arclist} 标签,并指定当前栏目ID。

{dede:arclist typeid='当前栏目ID' row='10' orderby='id' orderway='desc'}
    <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
{/dede:arclist}
  • typeid='当前栏目ID':这里的 当前栏目ID 可以用 {dede:field.id/} 来代替,实现动态调用。

按自定义字段排序(进阶)

有时候你可能想按一个自定义的数字字段(比如点击量 click、权重 weight 等)排序,方法和按 ID 排序完全一样,只需要把 id 换成你的字段名即可。

示例:按点击量(click)从高到低排序

{dede:list pagesize='10' orderby='click' orderway='desc'}
    ...
{/dede:list}

示例:按自定义字段 sortrank 排序

{dede:list pagesize='10' orderby='sortrank'}
    ...
{/dede:list}

总结与注意事项

场景 关键代码 说明
列表页 {dede:list} orderby='id' 最常用,直接修改模板即可。
首页/其他页 {dede:arclist} orderby='id' orderway='desc' 调用指定栏目或全站的文章。
后台自定义列表 后台设置 附加SQL条件:orderby=id 不修改模板,灵活创建特殊列表。

重要提示:

  1. 缓存问题:修改模板或自定义列表后,如果页面没有立即更新,请到后台 [生成] -> [更新HTML][一键更新] 中更新对应页面。
  2. 性能:对于数据量非常大的网站,复杂的排序可能会对数据库造成一定压力,影响页面加载速度,按 ID 排序(尤其是索引字段)通常性能很好。
  3. 排序方式:记得 orderway='asc' (升序) 和 orderway='desc' (降序) 的区别,根据你的需求选择,如果不写,默认是 asc
-- 展开阅读全文 --
头像
dede 获取指定栏目
« 上一篇 今天
char在c语言中的意思
下一篇 » 今天

相关文章

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