DEDECMS 是一款非常受欢迎的建站系统,拥有庞大的用户群体。然而,它也存在一些小问题或功能不足的情况。例如,在 DEDECMS 模板中,我们经常需要实现一个功能:栏目列表不仅通过文字展示产品,还需要使用缩略图来增强视觉效果。如果缺少这项功能,可能会显得不够直观和美观。尽管网上有很多关于实现该功能的教程,但很多方法都存在问题。经过反复测试和研究,以下是一个基本可行的解决方案。
第一步:新增字段 typeimg
在数据库中新增一个字段用于存储栏目图片路径。执行以下 SQL 语句:
alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';
第二步:修改相关文件
接下来需要修改以下几个文件以支持新字段:
- dede/catalog_add.php
- dede/catalog_edit.php
- dede/templets/catalog_add.htm
- dede/templets/catalog_edit.htm
修改 dede/catalog_add.php 文件
打开该文件并找到以下代码:
$queryTemplate = "insert into `dede_arctype`
将以下内容:
(reid,topid,sortrank,typename,typedir,
替换为:
(reid,topid,sortrank,typename,typedir,typeimg,
同时,将以下代码:
('~reid~','~topid~','~rank~','~typename~','~typedir~',
替换为:
('~reid~','~topid~','~rank~','~typename~','~typedir~','~typeimg~',
修改 dede/catalog_edit.php 文件
打开该文件并找到以下代码:
$upquery = "Update `dede_arctype` set
在其下方新增一行:
`typeimg`='$typeimg',
修改 dede/templets/catalog_add.htm 文件
找到以下代码:
列表命名规则:

在其下方新增以下代码:
栏目图片:
并在文件的 head 部分增加以下内容:
修改 dede/templets/catalog_edit.htm 文件
在适当位置插入以下代码:
栏目图片:
同样,在文件的 head 部分增加以下内容:
模板调用方式
经过以上设置后,直接使用 {dede:field.typeimg /} 可能无法正常调用数据。因此,可以改用 SQL 查询的方式实现调用:
{dede:sql sql="SELECT typename,typedir,typeimg FROM dede_arctype"}
[field:typeimg/]
{/dede:sql}
这样即可成功调用栏目缩略图。如果需要调用子栏目 ID,只需在 SQL 查询中添加相应的条件即可。