使用官方自带的 itemindex 属性(推荐,最简单)
这是最简单、最安全的方法,因为它不需要修改任何核心文件,只需要在使用标签时更换一个属性名。

autoindex 是从 0 开始,而 itemindex 是从 1 开始。
使用示例:
假设你原来这样写(autoindex 从0开始):
{dede:arclist titlelen='30' row='5'}
<li>[field:global.autoindex/]: <a href='[field:arcurl/]'>[field:title/]</a></li>
{/dede:arclist}
你只需要把 autoindex 换成 itemindex,它就会从 1 开始计数了:

{dede:arclist titlelen='30' row='5'}
<li>[field:global.itemindex/]: <a href='[field:arcurl/]'>[field:title/]</a></li>
{/dede:arclist}
输出结果:
- 第1条记录:
1: <a href='...'>文章标题1</a> - 第2条记录:
2: <a href='...'>文章标题2</a>
适用范围:
如果你确实需要继续使用 操作步骤: 找到核心文件
打开你的织梦程序根目录,找到并编辑以下文件:
定位代码
在该文件中,找到处理 你会找到类似下面这样的代码(版本不同,行号可能略有差异): 修改代码
将 更准确的做法是找到 将这行代码修改为:
这样,每次循环时 修改前: 修改后: 保存并测试
保存文件,然后刷新你的网站页面,查看效果。 ⚠️ 重要警告: 这个方法不依赖于 使用示例: 或者更简洁的写法(在 这种方法非常灵活,不局限于 对于绝大多数用户来说,直接使用 itemindex 属性同样适用于 dede:arclist 和 dede:loop
修改核心PHP文件(不推荐,但有特殊用途时可用)
autoindex 这个变量名,或者你希望修改所有默认行为,那么可以修改织梦的核心文件。
/include/taglib/arclist.lib.php
(这个文件控制 dede:arclist 标签的行为)
autoindex 的代码段,通常在 GetInnerText() 函数附近,搜索 autoindex 可以快速定位。// ... 其他代码 ...
if($GLOBALS['autoindex']>=0) {
$GLOBALS['autoindex']++;
}
// ... 其他代码 ...
$GLOBALS['autoindex']++; 修改为 $GLOBALS['autoindex'] = $GLOBALS['autoindex'] + 1; 或者更直观地,将初始值设为 -1,这样第一次加1后就是0,但我们希望从1开始,所以需要调整。$GLOBALS['autoindex'] 的初始赋值,通常在函数的开头部分,你会看到:
$GLOBALS['autoindex'] = -1;$GLOBALS['autoindex'] = 0;$GLOBALS['autoindex']++,第一次循环后 autoindex 的值就是 1,第二次就是 2,以此类推。// 在 arclist.lib.php 文件中
$GLOBALS['autoindex'] = -1; // 初始值为-1
// ... 循环内部 ...
$GLOBALS['autoindex']++; // 第一次循环后,-1 + 1 = 0
// 在 arclist.lib.php 文件中
$GLOBALS['autoindex'] = 0; // 初始值改为0
// ... 循环内部 ...
$GLOBALS['autoindex']++; // 第一次循环后,0 + 1 = 1
arclist 标签无法正常工作。
使用PHP在模板内进行计算(适用于任意标签)
autoindex,而是利用织梦模板的PHP执行能力。{dede:arclist titlelen='30' row='5'}
<?php
// 初始化一个计数器,或者利用全局变量
// 第一次进入此作用域时,autoindex为0
$my_index = $GLOBALS['autoindex'] + 1;
?>
<li><?php echo $my_index; ?>: <a href='[field:arcurl/]'>[field:title/]</a></li>
{/dede:arclist}
{dede:} 标签内使用PHP):{dede:arclist titlelen='30' row='5'}
<li><?php echo ($GLOBALS['autoindex'] + 1); ?>: <a href='[field:arcurl/]'>[field:title/]</a></li>
{/dede:arclist}
arclist,任何能获取到 $GLOBALS['autoindex'] 的地方都可以使用。
方法
优点
缺点
推荐度
使用
itemindex最简单、最安全、官方支持
需要记住使用
itemindex 而不是 autoindex★★★★★ (强烈推荐)
修改核心文件
一劳永逸,
autoindex 依然从1开始有覆盖风险,可能影响稳定性,不推荐新手操作
★☆☆☆☆ (不推荐,除非必要)
模板内PHP计算
灵活,适用于所有标签
代码稍显复杂,可读性稍差
★★★☆☆ (备选方案)
[field:global.itemindex/] 是解决这个问题的最佳途径。
