调用文章列表中的缩略图(最常用)
这是最基础也是使用最多的场景,比如在首页新闻板块、产品板块调用带图片的文章列表。

准备工作:确保文章有缩略图
在发布文章时,务必填写 “缩略图” 字段,这个字段通常位于文章编辑页面的右侧栏,如果不填,调用出来的图片地址会是空的或者默认的。
核心调用代码
织梦提供了强大的标签 {dede:arclist} 来调用文章列表,调用缩略图主要使用 litpic 这个字段。
基本代码示例:
{dede:arclist row='10' titlelen='30' typeid='1' imgwidth='120' imgheight='90'}
<a href="[field:arcurl/]" title="[field:title/]">
<img src="[field:litpic/]" alt="[field:title/]" width="120" height="90">
</a>
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me,100)'/]...</p>
{/dede:arclist}
代码参数详解
{dede:arclist ...}: 调用文章列表的开始标签。row='10': 调用10条文章。titlelen='30': 标题长度,最多显示30个字符。typeid='1': 指定栏目ID,只调用这个ID下的文章,如果想调用多个栏目,用逗号隔开,如typeid='1,2,3',留空或写typeid='0'表示调用所有栏目。imgwidth='120': 设置缩略图的显示宽度。imgheight='90': 设置缩略图的显示高度。innertext='': 循环体内的模板代码,默认就是下面这些。
[field:litpic/]: 核心字段,代表文章的缩略图地址。[field:arcurl/]: 文章的完整链接地址。[field:title/]: 文章的标题。[field:description function='cn_substr(@me,100)'/]: 文章的摘要,并用cn_substr函数截取前100个字符。
调用栏目列表中的栏目图片
如果你想在首页展示各个栏目,并带上每个栏目的代表图片,可以使用 有时候首页只需要调用某一篇特定的文章(比如置顶的Banner文章)的图片作为轮播图或大图展示,这时可以使用 这种方法通过指定文章的ID来调用,非常精确。 核心调用代码: 如果你知道文章的标题或其他条件,可以直接用SQL语句查询,非常灵活。 核心调用代码: 文章本身没有上传缩略图,但我们希望自动提取文章内容( 用FTP或文件管理器打开 添加完函数后,就可以在模板里使用了。 核心调用代码: 重要提示: 希望这些方法能帮助你完美解决织梦首页调用图片的问题!{dede:channel}
核心调用代码
{dede:channel type='top' row='8'}
<a href="[field:typelink/]">
<img src="[field:icon/]" alt="[field:typename/]">
<span>[field:typename/]</span>
</a>
{/dede:channel}
代码参数详解
{dede:channel ...}: 调用栏目的开始标签。
type='top': 只调用顶级栏目,如果你想调用所有栏目(包括子栏目),可以去掉这个参数或设为 type='son'(指定栏目的子栏目)。row='8': 调用8个栏目。[field:icon/]: 核心字段,代表栏目的栏目图标(也就是你说的栏目图片),这个图片是在“栏目管理” -> “选择栏目” -> “修改”时上传的“栏目图片”。[field:typelink/]: 栏目的链接地址。[field:typename/]: 栏目的名称。
调用指定文章的单张图片(用于首页Banner等)
{dede:sql} 或 {dede:arclist} 结合 idlist 参数。
方法A:使用
idlist 参数(推荐,更安全){dede:arclist idlist='10' row='1'}
<a href="[field:arcurl/]" title="[field:title/]">
<img src="[field:litpic/]" alt="[field:title/]">
</a>
{/dede:arclist}
idlist='10': 这是关键参数,表示只调用文章ID为10的这篇文章。row='1' 确保只调用一条。方法B:使用
dede:sql 标签(更灵活)
{dede:sql sql="SELECT litpic,arcurl,title FROM dede_archives WHERE title='首页Banner图' LIMIT 1"}
<a href="[field:arcurl/]" title="[field:title/]">
<img src="[field:litpic/]" alt="[field:title/]">
</a>
{/dede:sql}
sql="...": 这里写你的SQL查询语句。
dede_archives 是织梦存放文章信息的核心表。WHERE title='首页Banner图' 是查询条件,表示查找标题为“首页Banner图”的文章。LIMIT 1 限制只返回一条结果。[field:litpic/] 等字段在这里同样适用。
调用文章内容中的第一张图片
body字段)中的第一张图片作为封面图,这需要自定义一个函数。在
/include/extend.func.php 中添加函数/include/extend.func.php 文件,在文件末尾的 ?> 之前,添加以下PHP代码:/**
* 获取文档body中的第一张图片路径
* @param string $body 文档内容
* @return string
*/
function GetFirstImg($body)
{
if (empty($body)) return '';
$preg = "/<img.*?src=[\\'\\\"](.*?)[\\'\\\"].*?[\\/]?>/i";
preg_match_all($preg, $body, $match);
if (!isset($match[1][0]) || empty($match[1][0])) {
// 如果没有找到图片,可以返回一个默认图片
return '/images/default.jpg';
}
return $match[1][0];
}
在模板中调用
{dede:arclist row='5' typeid='1'}
<a href="[field:arcurl/]" title="[field:title/]">
<!-- 调用我们刚刚自定义的函数 -->
<img src="[field:body function='GetFirstImg(@me)'/]" alt="[field:title/]">
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
{/dede:arclist}
[field:body function='GetFirstImg(@me)'/]: 这是最关键的写法。
field:body 获取文章的完整内容。function='GetFirstImg(@me)' 将获取到的内容(@me)作为参数,传递给我们刚刚在 extend.func.php 中定义的 GetFirstImg 函数。
总结与最佳实践
调用场景
推荐标签
核心字段/参数
备注
文章列表缩略图
{dede:arclist}[field:litpic/]最常用,确保文章已上传缩略图。
栏目列表图片
{dede:channel}[field:icon/]调用的是在“栏目管理”中上传的“栏目图片”。
调用指定单图
{dede:arclist}idlist='文章ID'精确调用某一篇文章的图片,适合Banner等。
首图
{dede:arclist} + 自定义函数function='GetFirstImg(@me)'需要修改
extend.func.php,非常灵活。
[field:litpic/] 或 [field:icon/] 输出的路径是否正确,织梦默认是相对路径,如果你的网站根目录不是 ,可能需要调整。
