在dedecms中想要在列表前增加循环的数字编号(如 1, 2, 3...),其实有好几种方法都可以达到。。在(DedeCMS)管理系统中,获取列表循环数字次数是一个普遍会使用的需求,它内置了一个便于使用的命令 [field:global.autoindex/] ,就可以循环输出从1开始的循环数,默认情况下,[field:global.autoindex/]默认就从1开始循环添加编号到页面中。根据父级的循环来执行循环的次数,下面看代码原型:
方法 1:使用 [field:global.autoindex/]
{dede:arclist row='9' titlelen='60' orderby='click' idlist=''}
<li><span class="top">[field:global.autoindex/]</span><a href="[field:filename/]">[field:title/]</a></li>
{/dede:arclist}
输出内容的效果。
1 文章标题这是一个标题
2 文章标题这是一个标题
3 文章标题这是一个标题
4 文章标题这是一个标题
5 文章标题这是一个标题
6 文章标题这是一个标题
7 文章标题这是一个标题
8 文章标题这是一个标题
9 文章标题这是一个标题
在整个例子中,文章循环标签 {dede:arclist}{/dede:arclist}调用出需要的文章篇数。row=9,那么在中间放入 [field:global.autoindex/] 标签命令用来循环数字编号到文章标题前面,从而达到需要的效果。这是最简单的方式,自动从 1 开始递增编号。
方法 2:使用 [field:global name=autoindex/]
如果 autoindex 不生效,可以尝试完整写法:
{dede:arclist row='5'}
<span class="top">[field:global name=autoindex/]</span>
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
方法 3:从 0 开始编号(适用于需要自定义起始值)
如果希望编号从 0 开始,可以结合 PHP 代码:
{dede:arclist row='5'}
<?php $index = @me + 0; ?> <!-- 从 0 开始 -->
<span class="top">[field:global runphp='yes']@me=$GLOBALS['autoindex']-1;[/field:global]</span>
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
方法 4:自定义循环变量(适用于复杂需求)
如果需要在嵌套循环中使用独立编号,可以手动定义变量
{dede:arclist row='5'}
<?php $customIndex = 100 + @me; ?> <!-- 从 100 开始 -->
<span class="top"><?php echo $customIndex; ?></span>
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
最终经过对比和使用我们还是推荐使用第一种方法,不涉及到PHP重新代码的编写,而且是官方内置更加高效和快捷。