如果你想在栏目列表旁边显示栏目的创建时间或最后更新时间,你需要使用更强大的 {dede:channelartlist} 或 {dede:sql} 标签,或者对 channel 标签进行一些高级用法处理。

(图片来源网络,侵删)
下面我将为你详细介绍几种最常用和最有效的方法。
使用 {dede:channelartlist} (最推荐,用于栏目列表)
{dede:channelartlist} 是专门用于获取“栏目及其内容列表”的标签,它提供了更丰富的字段,包括时间。
适用场景: 在首页或栏目页,你想同时输出顶级栏目、其子栏目以及每个栏目下的文章列表,并显示栏目的时间。
基本用法示例:

(图片来源网络,侵删)
{dede:channelartlist typeid='top' row='8'}
<h2><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h2>
<ul>
{dede:sql sql='Select * from dede_arctype where reid=~id~ ORDER BY id limit 0,10'}
<li>
<a href="[field:typelink/]">[field:typename/]</a>
<!-- 输出栏目的创建时间 -->
<span class="time">创建于:[field:typedate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:sql}
</ul>
{/dede:channelartlist}
代码解析:
{dede:channelartlist typeid='top' row='8'}: 循环输出顶级栏目,最多8个。{dede:field name='typeurl'}: 获取当前顶级栏目的链接。{dede:field name='typename'}: 获取当前顶级栏目的名称。{dede:sql ...}: 这是一个子查询,用于获取当前顶级栏目 (~id~) 的所有子栏目。[field:typedate ...]: 这是关键部分。typedate字段存储了栏目的创建时间。function="MyDate('Y-m-d', @me)": 这是 DedeCMS 的一个强大功能,用于格式化时间。'Y-m-d': 定义你想要的时间格式,Y-m-d H:i:s会输出2025-10-27 15:30:00。@me: 代表typedate字段的原始值。
使用 {dede:sql} 直接查询 (最灵活)
如果你不想使用 channelartlist 的复杂结构,或者你的需求非常简单(比如只想在某处显示所有栏目的时间),{dede:sql} 是最直接、最灵活的方式。
适用场景: 任意需要自定义查询栏目信息的地方,灵活性最高。
基本用法示例:

(图片来源网络,侵删)
<ul>
{dede:sql sql='Select id,typename,typedate,typedir from dede_arctype where reid=0 ORDER BY id limit 0,10'}
<li>
<a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]">[field:typename/]</a>
<!-- 输出栏目的最后更新时间 (arctypedate字段) -->
<span>更新于:[field:arctypedate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:sql}
</ul>
代码解析:
{dede:sql sql='...'}: 执行一条自定义的 SQL 语句。from dede_arctype: 指定查询的数据表是dede_arctype,即栏目表。where reid=0: 只查询顶级栏目(reid为父栏目ID,0代表顶级)。[field:typedir ...]: 获取栏目的目录路径,注意用function='str_replace("{cmspath}","",@me)'去掉路径中的{cmspath}变量,得到正确的链接。[field:arctypedate ...]:arctypedate字段通常记录的是栏目下最新一篇文章的发布时间,可以理解为栏目的“最后更新时间”。typedate才是栏目本身的“创建时间”。
修改 channel 标签 (不推荐,但可行)
理论上,{dede:channel} 可以通过 typeid 属性指定一个栏目ID,然后用 runphp='yes' 和 array 来获取额外字段,但这种方法非常繁琐,且不易维护,不推荐使用。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
{dede:channelartlist} |
结构清晰,功能强大,与栏目和文章列表完美结合。 | 语法相对复杂,主要用于特定布局。 | 首页、栏目页的标准布局,需要展示栏目及其内容时。 |
{dede:sql} |
极度灵活,可以随心所欲地查询和组合数据。 | 需要用户具备基本的 SQL 知识,有安全风险(需注意防注入)。 | 需要自定义、非标准数据展示时,或进行复杂的数据统计。 |
{dede:channel} |
简单,用于输出基本栏目信息。 | 无法直接获取时间,扩展性差。 | 仅需显示栏目名称和链接的简单列表。 |
给你的最终建议:
- 如果你是在制作首页的栏目导航区,并且想显示每个栏目的创建时间,请优先使用 方法一 (
{dede:channelartlist})。 - 如果你想在某个特定位置(比如文章页的侧边栏)显示一个“热门栏目”列表并附带时间,请使用 方法二 (
{dede:sql}),因为它最简单直接。
希望这些详细的解释能帮助你解决问题!
