在 DedeCMS 中,为图片添加注释(也常被称为“图片说明”或“图片描述”)主要有两种实现方式:

- 使用官方自带的
textdata字段:这是最标准、最推荐的方法,通过在后台添加自定义字段来实现。 - 使用第三方扩展的
imgalt字段:这是一种比较流行的方法,通过修改系统文件,让图片的注释直接使用文章标题或自定义的imgalt字段。
下面我们分别详细介绍这两种方法。
使用官方推荐的 textdata 字段(最标准、最灵活)
这种方法的核心思想是,在文章模型中添加一个专门用于存放图片注释的自定义文本字段,然后在文章内容中通过特定的标签来调用这个字段的值。
步骤 1:在后台添加自定义字段
- 登录 DedeCMS 后台。
- 进入 【系统】 -> 【SQL命令行工具】。
- 在命令框中输入以下 SQL 语句,然后点击“查询”,这会为
dede_addonarticle表(文章附加表)添加一个名为textdata的字段,用于存放图片注释。ALTER TABLE `dede_addonarticle` ADD `textdata` TEXT NOT NULL DEFAULT '';
注意:如果你的文章附加表不是
dede_addonarticle(使用的是自定义模型),请相应修改表名。
步骤 2:在文章内容中插入图片注释标签
在你需要插入图片的地方,使用以下特殊格式的标签:

[field:img text='这里是你为这张图片写的注释内容'/]
标签格式解析:
[field:img ... /]:这是一个特殊的图片调用标签,它会自动解析文章内容中的第一张图片。text='...':这是核心属性,用于为这张图片添加注释。text后面的引号内的内容就是你要显示的图片说明。
示例:
假设你的文章内容是:
[field:img text='这是一张产品展示图,展示了我们最新的智能手机。'/] <p>这是关于产品的详细描述文字...</p> [field:img text='另一张图片,展示了产品的细节部分。'/] <p>更多产品信息...</p>
在模板中,当 {dede:field.body/} 被调用时,系统会自动将 [field:img text='...'/] 这个标签替换为实际的 <img> 标签,并将 text 属性的值作为 alt 属性和 title 属性。
最终生成的 HTML 可能是这样的:
<img src="/uploads/2025/10/10/1.jpg" alt="这是一张产品展示图,展示了我们最新的智能手机。" title="这是一张产品展示图,展示了我们最新的智能手机。"> <p>这是关于产品的详细描述文字...</p> <img src="/uploads/2025/10/10/2.jpg" alt="另一张图片,展示了产品的细节部分。" title="另一张图片,展示了产品的细节部分。"> <p>更多产品信息...</p>
步骤 3:在列表页或文章页调用注释
如果你想在列表页(如 在文章详情页模板中,你可以在图片下方这样显示注释: 优点: 这种方法通过修改系统文件,使得文章的默认图片( 这段代码的意思是: 在文章详情页模板中,找到调用文章缩略图 当你发布或编辑一篇文章时,在“自定义字段”部分就会出现“图片注释”这个输入框,在这里填入你想要的注释内容即可。 优点: 缺点: 对于绝大多数用户和场景,强烈推荐使用方法一(list_article.htm)或文章详情页(如 article_article.htm)中单独调用图片注释,可以使用 {dede:field.textdata/}
{dede:field.body/}
<div class="image-description">
图片注释:{dede:field.textdata/}
</div>
alt 属性对搜索引擎优化非常重要。
使用第三方扩展的
imgalt 字段(流行但需修改文件)litpic)的 alt 属性可以被自定义,从而实现图片注释的效果,它通常被称为 imgalt 修改。步骤 1:修改
include/arc.archives.class.php 文件
/include/arc.archives.class.php 文件。this->Fields['litpic'],通常在 MakeHtml() 函数附近。$this->Fields['litpic'] = $this->GetTruePath().$this->Fields['litpic'];
// 添加图片注释功能
if($this->Fields['imgalt'] == ''){
$this->Fields['imgalt'] = $this->Fields['title'];
}
imgalt 字段为空,则自动使用文章标题作为图片注释。步骤 2:修改
templets/default/article_article.htm 模板{dede:field name='litpic'/} 的地方,将其修改为:<img src="{dede:field name='litpic'/}" alt="{dede:field name='imgalt'/}" title="{dede:field name='imgalt'/}">
步骤 3:在后台添加
imgalt 自定义字段
imgalt (必须小写)imgalt 字段的“是否为空”设置为“否”,这样在发布文章时就必须填写。步骤 4:在后台发布文章时填写注释
textdata 方法灵活。
总结与对比
特性
方法一 (
textdata 字段)方法二 (
imgalt 字段)
实现方式
官方标准,添加自定义字段
第三方扩展,修改核心文件
适用范围
文章内任意一张图片
仅文章第一张图(缩略图)
灵活性
高,可为每张图单独设置注释
低,仅针对一张图
维护性
高,升级系统无需修改
低,升级系统需重新修改文件
推荐度
★★★★★ (强烈推荐)
★★☆☆☆ (谨慎使用)
textdata 字段),它更标准、更灵活、更安全,符合 DedeCMS 的设计理念,也更容易维护,只有在你有非常特殊的需求,比如只需要为缩略图设置注释,并且不介意手动修改核心文件时,才考虑使用方法二。
