核心思路
无论使用哪种方法,核心逻辑都是一样的:

- 获取自增数字:通过
autoindex变量或其他方式得到当前循环的序号(从1开始)。 - 判断数字范围:判断这个数字是否小于或等于3。
- 应用不同样式:如果数字 ≤ 3,则用
<span>或其他 HTML 标签包裹起来并应用一个特殊的 CSS 类(.red-text),否则直接输出数字。
使用 PHP 原生代码(推荐,最灵活)
这种方法直接在模板文件中嵌入 PHP 代码,非常灵活,可以处理各种复杂的逻辑。
步骤 1:准备 CSS 样式
在你的模板文件(通常是 head.htm 或一个公共的CSS文件)中定义用于变色的样式。
<style type="text/css">
/* 为前3个数字定义一个红色样式 */
.red-text {
color: red; /* 你也可以用其他颜色,#ff0000, orange, blue 等 */
font-weight: bold; /* 可选:加粗显示 */
}
</style>
步骤 2:在循环列表中修改代码
找到你想要应用此效果的列表循环代码,通常是 场景示例:文章列表 假设你的文章列表模板是 我们将 修改后的代码: 代码解释: 如果你不想在模板里写太多 PHP 代码,或者想让这个功能更易于复用,可以创建一个自定义的底层模板。 登录 DedeCMS 后台。 进入 点击 标签名称:填入一个你喜欢的名字, 标签说明:可以写“带样式的自增序号”。 底层模板:这是最关键的一步,在文本框里输入以下内容: 点击 你可以在任何列表模板中调用这个新创建的标签 修改后的列表模板代码: 这样,代码就变得非常简洁, 对于绝大多数用户来说,方法一(PHP 原生代码) 是最直接、最高效的解决方案,如果你有多个地方需要用到这个功能,再考虑使用方法二(自定义标签)来优化代码结构。{dede:list} 或 {dedarclist}
list_article.htm,找到类似这样的循环代码:
{dede:list pagesize='10'}
<li>
<span>[field:global.autoindex/]</span>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:list}
[field:global.autoindex/] 这部分进行修改,让它根据数值判断是否添加样式。{dede:list pagesize='10'}
<li>
<!-- 使用 PHP 代码进行判断和样式应用 -->
[field:global name=autoindex runphp='yes']
if (@me <= 3) {
// 如果序号小于等于3,用 span 标签包裹并添加 red-text 类
@me = '<span class="red-text">' . @me . '</span>';
} else {
// 否则,直接输出数字
@me = @me;
}
[/field:global]
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:list}
[field:global name=autoindex runphp='yes']:这是调用全局变量 autoindex(即当前循环的序号,从1开始),并开启 runphp='yes' 来执行 PHP 代码。if (@me <= 3):@me 在这里代表 autoindex 的当前值,判断这个值是否小于或等于3。@me = '<span class="red-text">' . @me . '</span>';:如果条件成立,就将原来的数字用 <span class="red-text">...</span> 包裹起来,这样这个数字就会应用我们之前定义的 CSS 样式。@me = @me;:如果条件不成立(即数字大于3),则不做任何处理,直接输出原数字。
使用 DedeCMS 自定义标签(更“模板化”)

步骤 1:创建自定义底层模板
模板 -> 自定义标签。增加一个自定义标签。myindex。[field:global name=autoindex runphp='yes']
if (@me <= 3) {
@me = '<span class="red-text">' . @me . '</span>';
} else {
@me = @me;
}
[/field:global]
保存。步骤 2:在列表模板中调用自定义标签
myindex。{dede:list pagesize='10'}
<li>
<!-- 直接调用我们创建的自定义标签 -->
[field:myindex/]
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:list}
myindex 这个标签可以在任何需要的地方重复使用,逻辑都封装在后台的自定义标签里。
注意事项和常见问题
.red-text 样式在最终生成的 HTML 页面中是有效的,通常放在 <head> 标签内的 <style> 块里,或者链接到外部的 CSS 文件中。autoindex 从1开始:{dede:list} 的 autoindex 是从1开始计数的,if (@me <= 3) 正好能匹配第1、2、3条记录,如果你的需求是从0开始或其它逻辑,请相应调整判断条件。runphp='yes' 的使用:此功能需要确保你的服务器 PHP 环境允许在模板中执行代码,DedeCMS 的相关配置是开启的(默认是开启的)。
方法
优点
缺点
适用场景
PHP 原生代码
灵活、直接,无需后台操作,逻辑清晰可见。
模板中会嵌入 PHP 代码,对纯前端开发者可能不友好。
一次性的、简单的模板修改,快速实现功能。
自定义标签
模板代码更简洁,功能可复用,逻辑与表现分离。
需要进入后台进行配置,多了一步操作。
多个模板需要使用相同逻辑,或者希望保持模板的“纯洁性”。
