使用 channelartlist 标签(最推荐、最灵活)
这是最推荐的方法,因为它不仅能获取当前栏目,还能方便地获取当前栏目的父栏目、子栏目等信息,代码结构清晰,不易出错。

(图片来源网络,侵删)
适用场景
- 在当前栏目页(如
list_article.php)或栏目封面页(index.php)中调用。 - 需要调用当前栏目的头条。
标签代码
{dede:channelartlist typeid='self'}
<ul>
{dede:arclist titlelen='40' row='1' flag='h'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
{/dede:channelartlist}
代码详解
-
{dede:channelartlist typeid='self'}channelartlist:这是一个循环标签,用于获取一个或多个栏目的信息。typeid='self':这是关键参数,它告诉 DedeCMS 只获取当前栏目及其相关信息,如果省略,默认会获取顶级栏目。
-
{dede:arclist ...}- 这个
arclist标签是在channelartlist循环内部使用的,它会自动继承channelartlist所限定的栏目范围,这里的arclist默认就是查询当前栏目下的文章。 titlelen='40'长度,限制显示40个字符,你可以根据需要调整。row='1':获取记录数,设置为1表示只获取一条新闻,也就是头条。flag='h':文章属性筛选,h代表“头条”,这个标签确保我们只调用带有“头条”属性的文章。
- 这个
-
[field:arcurl/]和[field:title/]- 这是文章字段的调用标签。
[field:arcurl/]:调用文章的完整链接。[field:title/]:调用文章的标题。
在列表页直接使用 arclist 标签(最简单)
如果你的需求非常简单,并且确定当前页面就是一个栏目列表页,可以直接使用 arclist 标签,并通过 typeid 参数来指定栏目。

(图片来源网络,侵删)
适用场景
- 仅在栏目列表页(
list_article.php)使用。 - 需要非常简洁的代码。
标签代码
{dede:arclist typeid='self' row='1' flag='h' titlelen='40'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
代码详解
- 这个方法和方法一的核心区别在于
typeid的处理方式。 typeid='self':这里的self同样表示“当前栏目”。arclist标签会解析这个参数,从而只列出当前栏目下的文章。- 其他参数(
row,flag,titlelen)和方法一完全相同。
注意:此方法在非栏目页面(如首页、文章页)中,typeid='self' 可能无法正确解析,会返回空。方法一更具通用性。
通过获取当前栏目ID再调用(适用于特定逻辑)
如果你需要先获取当前栏目ID,然后再进行其他复杂的判断或调用,可以使用这种方法。
适用场景
- 需要先获取当前栏目ID,用于其他 PHP 逻辑或更复杂的标签组合。
- 在自定义的 PHP 文件中调用。
标签代码
{dede:gettypeid typeid='self'}
{dede:arclist typeid='[field:id/]' row='1' flag='h' titlelen='40'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
{/dede:gettypeid}
代码详解
-
{dede:gettypeid typeid='self'}- 这个标签用于获取指定栏目的信息,并将其作为一个数据块。
typeid='self'同样是获取当前栏目。- 这个标签本身不输出任何内容,它的作用是将其内部的子标签(如
[field:id/])的上下文限定为当前栏目。
-
[field:id/]
(图片来源网络,侵删)- 在
gettypeid标签内部,[field:id/]会输出当前栏目的 ID 号。
- 在
-
{dede:arclist typeid='[field:id/]'}- 我们将获取到的栏目ID
[field:id/]作为typeid的值传递给arclist标签,从而精确地调用该栏目下的头条。
- 我们将获取到的栏目ID
这种方法比较绕,但能很好地展示 DedeCMS 标签嵌套和数据传递的能力。
总结与对比
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
channelartlist |
最通用、最灵活,结构清晰,不易出错,是官方推荐的最佳实践。 | 代码稍长一点。 | ⭐⭐⭐⭐⭐ (强烈推荐) |
直接 arclist |
代码最简洁,一目了然。 | 通用性差,只能在栏目列表页使用,在其他页面可能失效。 | ⭐⭐⭐ (适用于简单场景) |
gettypeid |
逻辑清晰,适合需要先获取ID再进行复杂处理的场景。 | 代码冗余,不如方法一直接高效。 | ⭐⭐ (适用于特殊逻辑) |
在实际开发中,请优先使用【方法一】,因为它最稳定、最符合 DedeCMS 的设计哲学,也最容易维护。
