使用系统自带标签 {dede:field.body/} 的 alt 属性(最简单、最推荐)
这是最直接的方法,直接在文章内容模板中调用,可以获取到图片本身的 alt 属性。

适用场景: 在文章内容页(article_article.htm)中,直接显示图片的 alt 文本。
示例代码:
假设你的文章内容中有一张图片:
<img src='/uploads/image/2025/a.jpg' alt='这是一张美丽的风景照' />
你可以在模板的任何位置,使用 {dede:field.body/} 来输出整个内容,如果你想单独处理这个 alt 属性,需要结合一些字符串处理函数。

直接输出包含 alt 的完整 <img> 标签(最常用)
这是最常见的情况,你不需要单独提取 alt,只需要正常调用文章内容即可。
{dede:field.body/}
这样,浏览器会渲染出 <img> 标签,alt 属性会正常显示。
提取并显示所有图片的 alt 属性(进阶)

如果你想在文章内容之外,单独列出所有图片的 alt 文本(用于文章摘要或SEO关键词),你需要使用 preg_match_all 函数来正则匹配。
示例代码(在文章内容页 article_article.htm 中):
{dede:field.body runphp='yes'}
// 使用正则表达式匹配所有img标签的alt属性
preg_match_all('/<img\s+[^>]*?alt\s*=\s*[\'"](.*?)[\'"][^>]*?>/i', @me, $matches);
// $matches[1] 是一个数组,包含了所有匹配到的alt值
// 将数组用逗号连接成字符串
$alt_text = implode(',', $matches[1]);
// 返回处理后的结果
@me = $alt_text;
{/dede:field.body}
代码解释:
{dede:field.body runphp='yes'}:开启PHP执行模式,@me变量代表{dede:field.body/}的原始值(即文章内容)。preg_match_all(...):执行正则表达式匹配。/<img\s+[^>]*?alt\s*=\s*[\'"](.*?)[\'"][^>]*?>/i:这个正则表达式用来查找所有<img>标签,并捕获其alt属性的值。$matches[1]:存储了所有被捕获的alt值。
implode(',', $matches[1]):将数组$matches[1]中的所有alt值用逗号连接成一个字符串。@me = $alt_text;:将处理后的结果赋值给@me,最终在页面上输出。
通过自定义字段(最灵活、最规范)
这是最规范和灵活的方法,特别适合SEO优化,你可以为每篇文章单独指定一个图片注释,而不是依赖于文章内容中的 alt 属性。
适用场景:
- 需要为文章设置一个统一的、优化的图片注释。
- 中可能没有图片,或者图片没有
alt属性。 - 在列表页、首页等非内容页调用。
操作步骤:
添加自定义字段
- 进入 DedeCMS 后台,点击“核心” -> “内容模型管理”。
- 选择你正在使用的模型(文章模型”),点击“更改”。
- 在“字段管理”标签页,点击“添加新字段”。
- 字段名:
img_alt(建议用英文,不能和已有字段重复) -
图片注释 - 字段类型:
单行文本 - 其他选项: 保持默认即可。
- 点击“保存”。
- (重要!)点击顶部的“更新缓存”按钮。
在后台填写内容
- 进入“新增文档”或“编辑文档”页面。
- 你会发现内容表单中多了一个“图片注释”的输入框。
- 在这里填入你想要的图片注释,产品A的特写高清图”。
在模板中调用
你可以在任何模板中通过 {dede:field.img_alt/} 来调用这个值。
示例代码(在列表页 list_article.htm 或首页 index.htm 中):
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p>图片注释:{dede:field.img_alt/}</p>
示例代码(在文章内容页 article_article.htm 中):
你可以将它用在 <img> 标签里:
{dede:field.body/}
<!-- 在文章下方显示自定义的图片注释 -->
<div class="custom-alt">
文章核心图片注释:{dede:field.img_alt/}
</div>
修改 include/helpers/arc.archives.class.php 文件(高级)
如果你想修改 DedeCMS 的核心逻辑,让它在特定标签(如 {dede:img text=''/})中自动提取 alt 属性,可以修改这个文件。此方法风险较高,不推荐普通用户操作,且在升级 DedeCMS 时可能会被覆盖。
适用场景: 开发者需要对系统进行深度定制。
大致思路:
- 找到
GetInnerText()方法。 - 修改处理
{dede:img}标签的逻辑,使其能解析text属性并将其作为alt属性输出。
由于此方法比较复杂且有一定风险,这里不提供详细代码,如果你有此需求,建议查阅 DedeCMS 的二次开发相关文档或社区。
总结与推荐
| 方法 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
{dede:field.body/} |
简单、直接、无需修改任何设置 | 依赖文章内容中的 img 标签,alt 为空则无法获取;在列表页等地方无法直接使用。 |
页,特别是当图片 alt 属性已在内容中写好的情况。 |
| 自定义字段 | 灵活、规范、可控性强,不依赖内容,利于SEO | 需要手动添加字段和为每篇文章填写数据,增加了一步操作。 | 所有场景,尤其是SEO优化、列表页、首页调用,以及需要一个统一、优化的图片注释时。 |
| 修改核心文件 | 功能强大,可以改变系统默认行为 | 风险高、复杂、升级后可能失效,不适合普通用户。 | 深度二次开发,需要从根本上改变系统行为时。 |
最终建议:
- 对于99%的用户,强烈推荐使用【方法二:自定义字段】,这是最专业、最可控的方式,对SEO最有利。
- 如果只是想在文章内容页里用,用【方法一】就足够了,尤其是配合
runphp提取alt的写法。 - 尽量避免使用【方法三】,除非你非常清楚你在做什么。
