操作步骤总览
- 第一步:修改数据库 - 在
dede_arctype表中增加一个typeimg字段,用于存储栏目缩略图的路径。 - 第二步:修改后台模板 - 修改
catalog_add.htm和catalog_edit.htm文件,让后台可以上传和选择缩略图。 - 第三步:修改处理文件 - 修改
catalog_add.php和catalog_edit.php文件,让后台能保存提交的缩略图信息。 - 第四步:前台调用 - 在模板文件中使用
{dede:field.typeimg/}标签来显示栏目缩略图。
第一步:修改数据库结构
这是最核心的一步,我们需要为栏目表增加一个存放缩略图路径的字段。

- 登录你的网站数据库管理工具(如 phpMyAdmin)。
- 选择你的织梦数据库。
- 找到
dede_arctype表(如果你的表前缀不是dede_,请使用你自己的前缀)。 - 点击“结构”或“SQL”选项卡,执行以下 SQL 语句来添加一个名为
typeimg的字段,类型为varchar(255),用于存放图片路径。
ALTER TABLE `dede_arctype` ADD `typeimg` VARCHAR(255) NOT NULL DEFAULT '';
执行成功后,dede_arctype 表中就有了 typeimg 字段。
第二步:修改后台模板文件
这一步的目的是在后台添加栏目时,能够上传或选择缩略图。
-
找到文件:
catalog_add.htm:用于添加新栏目。catalog_edit.htm:用于编辑已有栏目。
这两个文件通常位于
/dede/templets/目录下。
(图片来源网络,侵删) -
修改
catalog_add.htm:- 用代码编辑器打开
/dede/templets/catalog_add.htm。 - 找到类似
<tr>的行,特别是那些包含“栏目名称”、“栏目目录”等字样的行,模仿它们的格式,在合适的位置(在“栏目关键词”下面)添加以下代码。
<tr> <td height="65" style="width:150px;">栏目缩略图:</td> <td> <input type="text" name="typeimg" id="typeimg" style="width:300px;" value="" class="alltxt" /> <input type="button" name="set" value="选择图片" style="width:70px;" class="coolbg np" onClick="SelectImage('form1.typeimg','');" /> </td> </tr> - 用代码编辑器打开
-
修改
catalog_edit.htm:- 用代码编辑器打开
/dede/templets/catalog_edit.htm。 - 同样地,在合适的位置添加上面那段代码。注意:为了在编辑时能显示已有的图片,需要将
value属性修改为{dede:field.typeimg/}。
<tr> <td height="65" style="width:150px;">栏目缩略图:</td> <td> <input type="text" name="typeimg" id="typeimg" style="width:300px;" value="{dede:field.typeimg/}" class="alltxt" /> <input type="button" name="set" value="选择图片" style="width:70px;" class="coolbg np" onClick="SelectImage('form1.typeimg','');" /> </td> </tr> - 用代码编辑器打开
效果:你进入后台的“栏目管理” -> “添加栏目”或“编辑栏目”时,就会看到“栏目缩略图”这一项,并带有一个“选择图片”的按钮。
第三步:修改后台处理文件
这一步的作用是,当你点击“保存”按钮时,将你在第二步中填写的缩略图路径保存到数据库的 typeimg 字段中。

-
找到文件:
catalog_add.php:处理添加栏目的逻辑。catalog_edit.php:处理编辑栏目的逻辑。
这两个文件通常位于
/dede/目录下。 -
修改
catalog_add.php:- 用代码编辑器打开
/dede/catalog_add.php。 - 找到接收表单数据的代码段,通常在文件的开头部分,类似这样:
$dopost = $_POST['dopost']; $rank = isset($rank) && is_numeric($rank) ? $rank = 0; $typename = cn_substrR($typename, 30); // ... 其他变量
- 在这些变量定义的后面,添加
typeimg的接收代码:$typeimg = $_POST['typeimg'];
- 用代码编辑器打开
-
修改
catalog_edit.php:- 用代码编辑器打开
/dede/catalog_edit.php。 - 同样地,在文件开头接收表单数据的地方,添加
typeimg的接收代码:$typeimg = $_POST['typeimg'];
- 用代码编辑器打开
注意:织梦的更新操作通常是通过一个 UpDateArt 函数或类似的 SQL 更新语句完成的,你需要确保 typeimg 字段被包含在最终的 SQL 更新语句中,在大多数情况下,织梦的底层机制会自动处理你新增的字段,只要你在模板中使用了 <input name="typeimg">,如果保存后数据没有更新,则需要检查 SQL 更新语句,确保 typeimg 在 SET 子句中。
第四步:在前台模板中调用缩略图
后台的功能已经完成,我们可以在网站的模板文件中调用并显示栏目缩略图了。
-
找到你的栏目列表模板: 这个模板可能是
list_channel.htm、list_type.htm或者你在“栏目管理”中为该栏目指定的“列表模板”。 -
使用标签调用: 织梦为每个栏目提供了
typeimg字段,我们可以使用{dede:field.typeimg/}标签来获取它的值。 -
示例代码: 在你的列表模板中,你可以在循环栏目的地方(
{dede:channel}标签内)这样使用:{dede:channel type='top' row='8'} <li> <a href="[field:typelink/]" title="[field:typename/]"> <!-- 如果存在缩略图则显示,否则显示一个默认图片或空 --> [field:typeimg runphp='yes'] if(@me != '') { @me = '<img src="' . @me . '" alt="[field:typename/]" />'; } else { @me = '<img src="/images/default.png" alt="[field:typename/]" />'; // 设置一个默认图片路径 } [/field:typeimg] </a> <a href="[field:typelink/]" title="[field:typename/]">[field:typename/]</a> </li> {/dede:channel}代码解释:
[field:typelink/]:获取栏目的链接地址。[field:typename/]:获取栏目的名称。[field:typeimg runphp='yes']:这是关键。runphp='yes'允许我们在 PHP 代码中处理typeimg的值。if(@me != ''):判断typeimg字段是否为空。@me = '<img ... />':如果不为空,就生成一个<img>标签,src属性为图片路径。@me = '<img ... />':如果为空,就显示一个你指定的默认图片,避免图片加载失败或布局错乱。
总结与注意事项
- 文件路径:请务必确认你修改的文件路径是正确的,特别是如果你的网站安装目录不是根目录或者有自定义的前缀。
- 权限:确保你的 web 服务器对
/dede/目录下的.php和.htm文件有写入权限(对于修改模板文件是读取权限)。 - 缓存:修改完后台模板后,可能需要清空一下系统的缓存,才能看到新的界面,在后台有“系统” -> “一键更新网站”或“清空缓存”的选项。
- 默认图片:强烈建议你设置一个默认图片,这样当某些栏目没有上传缩略图时,页面依然美观。
- 安全性:确保上传目录的权限设置正确,防止上传恶意文件,织梦默认的上传目录是
/uploads/。
按照以上四个步骤操作,你就可以成功地为织梦CMS的栏目添加并使用缩略图功能了,如果在操作中遇到问题,请仔细检查每一步是否正确执行。
