ded人若彩虹,遇上方知有,何解?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 DEDE建站 正文

{dede:field name='litpic' /}

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

dede调用缩略图标签
(图片来源网络,侵删)

页(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调用缩略图标签
(图片来源网络,侵删)

使用 {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标签,作为 imgalt 属性,符合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调用缩略图标签
(图片来源网络,侵删)
{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> 标签,可以直接放在模板中使用。


调用指定栏目或单页的缩略图

如果你想在首页或某个栏目页调用某个特定栏目的缩略图,或者调用“单页文档模型”的缩略图,可以使用 {dede:global}

调用单页文档的缩略图

假设你有一个“关于我们”的单页文档,ID为 1

{dede:global name='cfg_phpurl'/}/imglist.php?tid=1
  • 这个标签会输出一个PHP脚本路径,该脚本会列出该栏目下的所有图片,这通常不是我们想要的缩略图。
  • 正确做法:单页文档的缩略图也存储在 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 字段。

核心建议:

  1. 总是提供默认图片:为了防止没有缩略图时页面布局错乱,强烈建议在使用 litpic 标签时,都加上 if 判断,并设置一个默认图片路径(如 /images/default.jpg)。
  2. 使用 alt 属性:为 <img> 标签设置 alt 属性,内容可以是文章标题(经过HTML过滤),这有助于SEO。
  3. 路径问题:确保你的图片上传目录和默认图片路径是正确的,如果缩略图不显示,首先检查路径是否正确。

希望这份详细的指南能帮助你完全掌握在DedeCMS中调用缩略图的方法!

-- 展开阅读全文 --
头像
织梦怎么调用友情链接
« 上一篇 02-27
dede友情链接在哪里?
下一篇 » 02-27

相关文章

取消
微信二维码
支付宝二维码