使用系统自带的“栏目图片”字段(推荐)
这是最标准、最推荐的方法,因为它利用了 DedeCMS 自有的数据结构,升级和维护时最不容易出问题。

第一步:后台添加栏目时上传图标
-
登录 DedeCMS 后台。
-
进入 「核心」-「栏目管理」。
-
找到你想要添加图标的栏目,点击 [修改]。
-
在栏目修改页面,向下滚动,找到 “栏目图片” 这个字段。
(图片来源网络,侵删) -
点击 “浏览...” 按钮,选择你准备好的图标文件(建议尺寸为 16x16, 24x24, 32x32 等小尺寸的 PNG 或 GIF 格式,这样更清晰)。
-
上传成功后,图片地址会自动填入输入框。
-
点击 “确定” 保存修改。
第二步:在模板文件中调用栏目图标
图标的数据已经保存在数据库里了,你需要在你网站的模板文件(通常是 list_article.htm 或 index.htm)中,通过调用 {dede:field} 标签来显示它。

假设你在一个循环栏目列表的地方({dede:channelartlist} 或 {dede:global name='typeid'} 的循环中),可以这样写:
{dede:field name='typeimg'/}
直接这样写,如果某个栏目没有上传图片,就会显示一个破碎的图片图标,非常不美观。 我们通常会用一个更健壮的写法,结合 if 判断:
{dede:field name='typeimg' runphp='yes'}
if (@me != '') {
@me = '<img src="' . @me . '" alt="{dede:field.seotitle/}" />';
} else {
@me = '<img src="/images/default.png" alt="{dede:field.seotitle/}" />'; // 如果没有图标,显示一个默认图标
}
{/dede:field}
代码解释:
runphp='yes':允许在标签内执行 PHP 代码。if (@me != ''):判断{dede:field.typeimg/}的值是否为空。@me = '...':如果不为空,就将@me(即标签的最终输出值)设置为一个完整的<img>@me = '...':如果为空,就设置为一个默认图标的<img>标签,你需要提前准备好一个默认图标,并上传到你的网站目录下(/images/default.png)。
使用示例:
在 list_article.htm 文件中,找到栏目列表的循环部分(通常是 {dede:channel type='son'}),将其修改为:
<ul class="channel-list">
{dede:channel type='son' typeid='0'}
<li>
<a href="[field:typelink/]">
<!-- 在这里调用我们上面写的代码 -->
{dede:field.name runphp='yes'}
$typeimg = @me;
if($typeimg != ''){
@me = '<img src="' . $typeimg . '" alt="' . @me . '" class="channel-icon" />';
} else {
@me = '<img src="/images/default.png" alt="' . @me . '" class="channel-icon" />';
}
{/dede:field}
<span>[field:typename/]</span>
</a>
</li>
{/dede:channel}
</ul>
别忘了在 CSS 文件中为图标添加样式,让它看起来更美观:
.channel-list li img.channel-icon {
width: 16px;
height: 16px;
margin-right: 5px;
vertical-align: middle; /* 让图标和文字垂直对齐 */
}
通过附加表添加自定义字段
如果你觉得“栏目图片”这个字段名不直观,或者想添加更多自定义信息(如栏目简介、背景色等),可以通过 DedeCMS 的“附加表”功能来实现。
第一步:创建附加表和字段
- 登录 DedeCMS 后台。
- 进入 「核心」-「频道模型」-「内容模型管理」。
- 点击 [增加一个新模型]。
- 模型名称:填写
栏目扩展或你喜欢的名字。 - 数据表:系统会自动生成一个,如
dede_addonmodel_1,记住这个表名。 - 其他选项保持默认即可,然后提交。
- 模型名称:填写
- 在模型管理列表中,找到你刚创建的“栏目扩展”模型,点击 [管理字段]。
- 点击 [增加新字段]。
- 字段名称:
typeicon(英文,不能有特殊字符) - :
栏目图标(中文,用于后台显示) - 字段类型:选择
多媒体(这样上传后会自动生成路径) - 其他选项:根据需要设置,比如是否为必填等。
- 提交。
- 字段名称:
- 最重要的一步:回到 「系统」-「系统基本参数」-「核心设置」,找到 “栏目模型默认选择”,将其修改为你刚刚创建的“栏目扩展”模型的ID,这样,以后新建栏目时就会默认使用这个附加表。
第二步:在后台修改栏目并上传图标
- 进入 「核心」-「栏目管理」,修改一个栏目。
- 你会看到多出一个 “栏目扩展” 的选项卡。
- 切换到这个选项卡,就能看到你刚才创建的 “栏目图标” 字段。
- 点击“浏览”上传你的图标,然后保存。
第三步:在模板中调用
调用方式和第一种方法类似,但字段名是你自定义的 typeicon。
{dede:field.typeicon runphp='yes'}
if (@me != '') {
@me = '<img src="' . @me . '" alt="{dede:field.seotitle/}" />';
} else {
@me = '<img src="/images/default.png" alt="{dede:field.seotitle/}" />';
}
{/dede:field}
总结与对比
| 特性 | 方法一 (系统自带字段) | 方法二 (附加表) |
|---|---|---|
| 优点 | 无需任何额外设置,开箱即用。 稳定可靠,符合系统原生逻辑。 升级系统时不易出错。 |
功能强大,可以无限添加自定义字段。 字段管理清晰,可以分组。 |
| 缺点 | 字段名称固定为“栏目图片”,不够灵活。 无法为已有栏目批量添加新字段。 |
设置步骤相对复杂。 需要修改系统基本参数。 |
| 适用场景 | 绝大多数情况,强烈推荐,只需要一个简单的图标功能。 | 需要为栏目添加大量额外信息(如副标题、颜色、联系方式等)的复杂网站。 |
对于你的问题“dede 5.7 栏目图标”,直接使用方法一 是最简单、最直接的解决方案,除非你有非常特殊的需求,否则无需使用方法二。
