{dede:field name='litpic' /}
这是最直接、最常用的调用当前栏目或文章缩略图的标签,它直接输出数据库中 litpic 字段存储的图片路径。

页(article_article.htm)中使用
在文章详情页,直接使用 litpic 标签即可调用该文章的缩略图。
{dede:field name='litpic' /}
示例:在文章标题下方显示缩略图
<h1>{dede:field name='title' /}</h1>
{dede:field name='litpic' /}
<div class="article-content">
{dede:field name='body' /}
</div>
重要提示: 如果文章没有上传缩略图,这个标签会输出一个空值,为了避免页面布局错乱,通常会配合 if 语句进行判断。
{dede:field.name='litpic' runphp='yes'}
if(@me != "") {
@me = "<img src='" . @me . "' alt='{dede:field.name='title'/}' />";
} else {
@me = "<img src='/images/default.jpg' alt='{dede:field.name='title'/}' />";
}
{/dede:field.name}
runphp='yes':允许在标签内使用PHP代码。@me:代表当前标签的值,也就是litpic的路径。@me不为空,就输出一个<img>标签;否则,输出一个默认图片。
在列表页(list_article.htm)中使用
在列表页,我们需要循环遍历所有文章,对每篇文章调用其缩略图,这时需要将 litpic 标签放在 {dede:list} 或 {dede:arclist} 循环标签内部。

使用 {dede:list}
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" />
</a>
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
</li>
{/dede:list}
[field:litpic/]:在列表循环中,通常使用简短形式[field:xxx/]。[field:arcurl/]:调用文章的链接地址。[field:title function='html2text(@me)'/]进行过滤,移除HTML标签,作为img的alt属性,符合SEO规范。
使用 {dede:arclist}
{dede:arclist} 是更灵活、更强大的列表调用标签,也推荐使用。
{dede:arclist titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" />
</a>
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
</li>
{/dede:arclist}
```len='30'`:标题长度限制为30个字符。
* `row='10'`:调用10条记录。
---
### 二、调用自定义图集的缩略图
如果你的文章类型是“图集”,那么除了主缩略图 (`litpic`),你可能还需要调用图集中的第一张图片作为列表缩略图。
#### 1. 调用图集第一张图片
可以使用 `{dede:field name='imgurls'}` 配合PHP代码来解析图集数据,获取第一张图片。
```html
{dede:field.name='imgurls' runphp='yes'}
// 1. 获取图集数据
$imgurls = @me;
// 2. 如果存在图集数据
if($imgurls != '') {
// 3. 使用正则表达式匹配第一张图片
preg_match_all('/<img[^>]+src=['"]([^'"]+)['"][^>]*>/i', $imgurls, $matches);
// 4. 如果匹配到图片
if(isset($matches[1][0])) {
@me = $matches[1][0]; // 将第一张图片路径赋值给 @me
} else {
@me = '/images/default.jpg'; // 如果没有图片,使用默认图
}
} else {
@me = '/images/default.jpg'; // 如果没有图集,使用默认图
}
{/dede:field.name}
使用示例:

{dede:field.name='imgurls' runphp='yes'}
$imgurls = @me;
if($imgurls != '') {
preg_match_all('/<img[^>]+src=['"]([^'"]+)['"][^>]*>/i', $imgurls, $matches);
if(isset($matches[1][0])) {
@me = "<img src='" . $matches[1][0] . "' alt='{dede:field.name='title'/}' />";
} else {
@me = "<img src='/images/default.jpg' alt='{dede:field.name='title'/}' />";
}
} else {
@me = "<img src='/images/default.jpg' alt='{dede:field.name='title'/}' />";
}
{/dede:field.name}
这个例子直接输出了完整的 <img> 标签,可以直接放在模板中使用。
调用指定栏目或单页的缩略图
如果你想在首页或某个栏目页调用某个特定栏目的缩略图,或者调用“单页文档模型”的缩略图,可以使用 假设你有一个“关于我们”的单页文档,ID为 使用 核心建议: 希望这份详细的指南能帮助你完全掌握在DedeCMS中调用缩略图的方法!{dede:global}
调用单页文档的缩略图
1。{dede:global name='cfg_phpurl'/}/imglist.php?tid=1
litpic 字段,你需要通过SQL查询来获取。{dede:sql} 标签查询并调用:{dede:sql sql='SELECT litpic FROM dede_archives WHERE id = 1'}
<img src="[field:litpic/]" alt="关于我们" />
{/dede:sql}
dede_archives 是文章主表,id=1 是你的单页文档ID。[field:litpic/] 替换为你查询出的缩略图路径。
总结与最佳实践
场景
推荐标签
说明
页
{dede:field name='litpic' /}直接调用当前文章的缩略图。
列表页
[field:litpic/]放在
{dede:list} 或 {dede:arclist} 循环内。
图集列表页
[field:litpic/]调用的是图集上传的“主缩略图”。
页
{dede:field.name='imgurls' runphp='yes'}通过PHP解析图集HTML,获取第一张图片。
调用指定栏目/单页
{dede:sql}通过SQL查询目标文档的
litpic 字段。
litpic 标签时,都加上 if 判断,并设置一个默认图片路径(如 /images/default.jpg)。alt 属性:为 <img> 标签设置 alt 属性,内容可以是文章标题(经过HTML过滤),这有助于SEO。
