下面我将为你详细解释几种实现方法,从最推荐到备用方案,并说明它们各自的优缺点。

核心问题:为什么序号从 0 开始?
在 PHP 中,foreach 循环的索引(index)默认是从 0 开始计数的,DedeCMS 的底层标签驱动正是利用了这个特性,要让它从 1 开始,我们只需要在显示的时候给这个索引值加 1 即可。
使用 @me + 1 (最推荐、最灵活)
这是最常用也是最灵活的方法,适用于所有支持底层模板的 DedeCMS 标签,如 arclist、channelartlist、flink 等。
适用场景:
{dede:arclist}自定义序号{dede:channel}频道列表序号- 其他需要自定义序号的循环标签
操作步骤:

- 在你的模板文件中,找到需要添加序号的标签。
- 在标签内部,使用
field属性配合@me变量。
语法格式:
{dede:arclist ...}
<li>
序号:[field:global.autoindex/]
标题:[field:title/]
</li>
{/dede:arclist}
上面的代码会输出:
<li>
序号:0文章标题1
</li>
<li>
序号:1文章标题2
</li>
...
修改为从 1 开始:
只需要将 [field:global.autoindex/] 改为 [field:global.autoindex function='@me+1'/] 即可。
示例代码:

<ul>
{dede:arclist titlelen='30' row='5'}
<li>
[field:global.autoindex function='@me+1'/]. [field:title/]
</li>
{/dede:arclist}
</ul>
输出结果:
<ul>
<li>
1. 这是第一篇文章的标题
</li>
<li>
2. 这是第二篇文章的标题
</li>
<li>
3. 这是第三篇文章的标题
</li>
<li>
4. 这是第四篇文章的标题
</li>
<li>
5. 这是第五篇文章的标题
</li>
</ul>
优点:
- 灵活:不仅可以
+1,还可以进行其他运算,*2、+10等,[field:global.autoindex function='@me*2'/]。 - 通用:适用于几乎所有循环标签。
- 无需修改核心文件:安全,不会因为 DedeCMS 升级而失效。
修改 PHP 核心文件 (不推荐,仅作了解)
这种方法直接修改 DedeCMS 的源代码,让 autoindex 从 1 开始计数,虽然一劳永逸,但强烈不推荐,原因如下:
- 危险:修改核心文件可能导致系统不稳定。
- 升级困难:每次 DedeCMS 官方发布新版本并修复漏洞时,你都需要重新修改这个文件,非常麻烦。
- 影响全局:这会改变整个系统中所有依赖
autoindex的地方,可能在你意想不到的地方引发问题。
操作步骤 (仅作示例,请勿随意操作):
你需要找到 include/arc.archives.class.php 或其他相关的标签类文件,找到生成 autoindex 的代码段,将其中的 $i++ 改为 $i = 1; $i++,或者将 $this->dtp->Assign($tagid, $i); 中的 $i 改为 $i+1。
由于不同版本的 DedeCMS 文件结构可能不同,具体代码位置不在此赘述,再次强调,请优先使用方法一。
使用 dede:list 标签的特殊性 (特定场景)
{dede:list} 标签用于列表页,它有一个内置的变量 me,这个 me 的值就是从 1 开始的页码。
适用场景:
- 在列表页(
list_article.htm)中,为文章添加分页序号。
示例代码 (在列表页模板 list_article.htm 中):
{dede:list pagesize='10'}
<li>
第 [field:me/] 页的文章:[field:title/]
</li>
{/dede:list}
输出结果:
<li>
第 1 页的文章:文章标题1
</li>
<li>
第 1 页的文章:文章标题2
</li>
...
<li>
第 2 页的文章:文章标题11
</li>
...
注意: field:me 代表的是文章所在的页码,而不是文章在当前页的序号,如果你想要的是当前页的文章序号(1, 2, 3...),那么它仍然是从 0 开始的,此时方法一 (@me+1) 依然是最佳选择。
总结与推荐
| 方法 | 适用场景 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|---|
@me + 1 |
所有循环标签 (arclist, channel 等) | 灵活、安全、通用、不破坏系统 | 无明显缺点 | ⭐⭐⭐⭐⭐ (首选) |
| 修改核心文件 | 彻底改变全局 autoindex 行为 |
一劳永逸 | 危险、升级困难、影响全局 | ⭐☆☆☆☆ (不推荐) |
field:me |
列表页 ({dede:list}) |
简单,直接获取页码 | 只适用于特定场景,功能单一 | ⭐⭐☆☆☆ (特定场景下使用) |
对于 99% 的需求,请直接使用 方法一:
[field:global.autoindex function='@me+1'/]
这是 DedeCMS 模板设计的标准实践,也是最安全、最可维护的解决方案。
