dede orderby=pubdate按什么排序?

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

orderby=pubdate 是什么?

orderby=pubdate 是 DedeCMS 标签(如 {dede:arclist}, {dede:sql} 等)中的一个排序参数。

dede orderby=pubdate
(图片来源网络,侵删)
  • orderby: 指的是“按...排序”。
  • pubdate: 指的是“发布日期”或“公开时间”(Publish Date)。

orderby=pubdate 的完整含义就是:按照文章的发布日期进行排序。


在常用标签中的具体用法

orderby=pubdate 最常用于以下两个标签。

{dede:arclist} 标签中(用于列表页、首页)

这是最常见的用法,用于在文章列表、首页、栏目页等地方调用文章并按发布日期排序。

基本语法:

dede orderby=pubdate
(图片来源网络,侵删)
{dede:arclist orderby='pubdate' titlelen='30' row='10'}
    <li>
        <a href='[field:arcurl/]'>[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

参数详解:

  • orderby='pubdate': 核心参数,指定按发布日期降序排列(最新的在最前面),len='30'`: 标题长度,截取30个字符。
  • row='10': 调用文章的数量,调用10篇。
  • [field:arcurl/]: 文章链接。
  • [field:title/]: 文章标题。
  • [field:pubdate/]: 文章发布日期,通常会配合一个函数来格式化日期,function="MyDate('Y-m-d', @me)" 将日期格式化为 年-月-日

示例:调用最新发布的5篇产品文章

<h3>最新产品</h3>
<ul>
    {dede:arclist typeid='5' orderby='pubdate' row='5' titlelen='20'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <em>[field:pubdate function="MyDate('m-d', @me)"/]</em>
        </li>
    {/dede:arclist}
</ul>

这个例子会从ID为5的栏目中,调用最新发布的5篇文章,标题长度不超过20字,日期格式为 月-日


{dede:sql} 标签中(用于自定义SQL查询)

当你需要写自定义的SQL语句来获取数据时,也可以使用 orderby=pubdate 来对结果进行排序。

基本语法:

{dede:sql sql="SELECT id,title,pubdate FROM dede_archives WHERE channel=1 ORDER BY pubdate DESC LIMIT 10"}
    <li>
        <a href='/plus/view.php?aid=[field:id/]'>[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:sql}

注意:{dede:sql} 中,orderby 参数是直接写在 sql 语句里面的,这里 ORDER BY pubdate DESC 就等同于 orderby='pubdate'DESC 表示降序(从新到旧),ASC 表示升序(从旧到新)。


关键点:排序方向(升序 vs 降序)

这是 orderby=pubdate 中一个非常重要的细节,也是很多新手容易混淆的地方。

默认情况下,orderby=pubdate降序排列的,即最新的文章排在最前面

  • 降序 (Descending): pubdate 默认值,按时间从新到旧排序。(最常用)

    • orderby='pubdate' (等同于 ORDER BY pubdate DESC)
    • orderby='pubdate DESC'
  • 升序 (Ascending): 按时间从旧到新排序。

    • orderby='pubdate ASC'

示例:调用最早发布的文章

如果你想做一个“历史文章”列表,显示最早发布的文章,就需要使用升序。

<h3>历史文章</h3>
<ul>
    {dede:arclist orderby='pubdate ASC' row='10'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
        </li>
    {/dede:arclist}
</ul>

与其他 orderby 值的对比

orderby 参数支持多种排序方式,了解它们之间的区别很重要。

orderby 含义 排序依据 备注
pubdate 按发布日期 文章的发布时间 默认降序,最新在前,最常用。
senddate 按录入日期 文章录入到系统的时间 如果文章是后期编辑后更新的,senddate 会变,但 pubdate 不变。
hotclick 按点击量 文章的点击次数 需要开启“点击计数”功能。
scores 按评分 文章的平均分 需要开启“评论/评分”功能。
sortrank 按文章排序值 后台“高级选项”中的“排序值” 数字越大,排序越靠前,常用于人工置顶。
id 按文章ID 文章的唯一ID 通常ID是递增的,所以按ID降序也近似于按发布时间降序。
lastpost 按最后评论时间 文章最后一条评论的时间 适用于评论活跃的站点。

常见问题与解决方案 (FAQ)

Q1: 为什么我设置了 orderby='pubdate',但文章顺序不对?

A1: 最常见的原因是排序方向。 请检查你想要的顺序是新到旧还是旧到新。

  • 新到旧(默认):orderby='pubdate'orderby='pubdate DESC'
  • 旧到新:orderby='pubdate ASC'

Q2: pubdatesenddate 有什么区别?什么时候用哪个?

A2:

  • pubdate (发布日期): 指文章首次发布或公开的时间,这个时间通常比较稳定,适合用来展示“最新资讯”、“最新产品”等。
  • senddate (录入日期): 指文章被录入到 DedeCMS 数据库中的时间,如果你对一篇文章进行了编辑、修改,更新”它,senddate 会变成当前时间,但 pubdate 通常不变。

选择建议:

  • 如果你想展示网站最新动态,无论文章是新发还是旧文被修改,都用 orderby='senddate'
  • 如果你想展示真正意义上的最新发布的文章,用 orderby='pubdate'

Q3: 如何实现“先按置顶(sortrank),再按发布日期(pubdate)”排序?

A3: 你可以使用多个排序字段,用逗号隔开。

{dede:arclist orderby='sortrank,pubdate' row='20'}
    ...
{/dede:arclist}

这行代码的含义是:首先按照 sortrank(排序值)降序排列,sortrank 相同(比如都没有设置排序值),则再按照 pubdate 降序排列。 这是实现“人工置顶”功能的经典写法。

orderby=pubdate 是 DedeCMS 中一个基础且极其重要的排序参数。

  • 核心功能:按文章发布日期排序。
  • 默认行为:降序排列,最新文章在前。
  • 升序用法orderby='pubdate ASC',最早文章在前。
  • 最佳实践:在需要展示最新内容的场景下(如首页、栏目页),orderby='pubdate' 是你的首选,当需要结合人工置顶时,可以写成 orderby='sortrank,pubdate'
-- 展开阅读全文 --
头像
dedecms dede arclist标签如何调用数据?
« 上一篇 12-02
dede pagelist option参数如何设置?
下一篇 » 12-02

相关文章

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

目录[+]