使用系统自带的 {dede:field name='litpic' /} 标签(最直接)
这是最简单、最直接的方法,织梦的文章模型中,每个文章都有一个“缩略图”字段,其字段名就是 litpic,在文章内容页模板中,你可以直接使用 {dede:field} 标签来调用它。

操作步骤:
-
打开你的文章内容页模板文件,通常位于
/templets/default/article_article.htm。 -
在你希望显示缩略图的位置,插入以下代码:
{dede:field name='litpic' /}
代码解释:

{dede:field name='litpic' /}会直接输出当前文章的缩略图路径,/uploads/230101/1-2301011F3020-50.jpg。- 这个标签本身只是一个路径,为了让它能在浏览器中正确显示为图片,你需要用
<img>标签将其包裹起来。
优化后的代码(推荐):
为了让图片显示更可控,建议加上 <img> 标签并设置样式。
<img src="{dede:field name='litpic' /}" alt="{dede:field name='title' /}" />
src="{dede:field name='litpic' /}":指定图片源为文章缩略图路径。alt="{dede:field name='title' /}":为图片添加alt属性,内容为文章标题,这有利于SEO和无障碍访问。
加上CSS样式(可选):
你可以给 <img> 标签加上一个 class,以便通过CSS控制其大小、对齐方式等。

<img src="{dede:field name='litpic' /}" alt="{dede:field name='title' /}" class="article-thumbnail" />
然后在你的CSS文件(如 /templets/default/style/dedecms.css)中添加:
.article-thumbnail {
max-width: 200px; /* 限制最大宽度 */
height: auto; /* 高度自适应,保持比例 */
float: left; /* 左浮动,文字会围绕图片 */
margin-right: 15px; /* 图片右侧外边距 */
margin-bottom: 10px; /* 图片底部外边距 */
}
调用文章正文中的第一张图片(更智能)
很多时候,文章作者可能忘记上传缩略图,但正文里一定有图片,我们可以通过自定义函数,实现“如果文章有缩略图则调用缩略图,如果没有,则自动调用正文中的第一张图片”的智能效果。
这种方法更灵活,用户体验更好。
操作步骤:
-
创建自定义函数文件:
- 在
/include/目录下新建一个名为custom.func.php的文件(如果已存在则直接编辑)。 - 在这个文件中,添加以下PHP函数代码:
// 函数名:GetFirstImg // 功能:获取文章正文中的第一张图片路径 function GetFirstImg($body) { $preg = "/<img.*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/i"; preg_match_all($preg, $body, $match); if (!empty($match[1][0])) { // 返回第一张图片的路径 return $match[1][0]; } // 如果没有找到图片,可以返回一个默认图片路径或者空 // return '/templets/default/images/default.jpg'; return ''; } - 在
-
页模板中调用函数:
- 打开
article_article.htm模板文件。 - 在你需要显示图片的位置,使用
{dede:field}标签结合function属性来调用我们刚刚创建的函数。
{dede:field name='body' function='GetFirstImg(@me)'/} - 打开
代码解释:
{dede:field name='body'}:获取文章正文的全部内容。function='GetFirstImg(@me)':这是关键。@me是织梦模板的一个特殊变量,代表当前标签的原始值,在这里就是body的全部内容。GetFirstImg(@me)表示将body的内容作为参数,传递给我们自定义的GetFirstImg函数。- 函数会返回正文第一张图片的路径,然后这个路径就会被输出到模板中。
将方法一和方法二结合(最佳实践):
我们可以结合这两种方法,实现最终的完美效果:优先使用缩略图,如果没有再使用正文第一张图。
- 确保你的
/include/custom.func.php文件中有GetFirstImg函数。 - 在
article_article.htm模板中,使用织梦的if条件语句进行判断。
{dede:field name='litpic' runphp='yes'}
if (@me != '') {
// 如果缩略图不为空,则输出img标签
@me = '<img src="' . @me . '" alt="' . $fields['title'] . '" class="article-thumbnail" />';
} else {
// 如果缩略图为空,则调用正文第一张图
$body = $fields['body'];
$preg = "/<img.*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/i";
preg_match_all($preg, $body, $match);
if (!empty($match[1][0])) {
@me = '<img src="' . $match[1][0] . '" alt="' . $fields['title'] . '" class="article-thumbnail" />';
} else {
// 如果两者都没有,可以输出一个空div或者默认图片
// @me = '<img src="/templets/default/images/default.jpg" alt="' . $fields['title'] . '" class="article-thumbnail" />';
@me = '';
}
}
{/dede:field}
这段代码功能非常强大,但稍微复杂一些,对于大多数用户来说,方法一已经足够满足基本需求。
使用自定义字段(适用于特殊需求)
如果你的网站对图片有更复杂的需求,比如需要多张图片、图片描述等,可以在后台创建自定义字段。
操作步骤:
-
登录织梦后台 -> 核心 -> 内容模型管理。
-
点击你正在使用的文章模型(通常是“文章”)进行“修改模型”。
-
在“字段管理”中,点击“添加新字段”。
-
字段名称:填写
my_thumb(英文,不能重复)。 -
字段类型:选择“图片(单图)”。
-
保存。
-
发布或修改文章时,你会看到新增的“上传图片”选项,上传后图片会保存在这个新字段里。
-
在
article_article.htm模板中,调用方式和方法一类似:{dede:field name='my_thumb' /}
这种方法适用于需要额外图片功能的场景,但对于简单的缩略图调用,略显繁琐。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 方法一 | 最简单,直接,无需额外操作 | 功能单一,无法处理无缩略图的情况 | 简单的网站,确保每篇文章都上传了缩略图。 |
| 方法二 | 智能,用户体验好,自动调用正文图片 | 需要修改文件和添加PHP代码,稍复杂 | 推荐使用,能极大提升网站的健壮性和用户体验。 |
| 方法三 | 灵活,可扩展性强 | 配置较繁琐,需要修改模型 | 需要额外图片功能,如多图、图集等复杂情况。 |
对于绝大多数用户,我强烈推荐您使用 方法二,或者至少从 方法一 开始,如果您的网站内容量大且更新频繁,方法二的智能取图功能会非常实用。
