织梦如何调用上传图片集合?

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

在织梦里,“图片集合”通常指的是文章内容字段(body)中使用 {dede:img} 标签插入的一组或多张图片,调用它们的核心思路是:

织梦调用上传图片集合
(图片来源网络,侵删)
  1. 获取文章内容:首先获取包含图片集合的文章完整内容。
  2. 使用特定标签解析:使用织梦专门用于解析图片集合的标签,从内容中提取出图片信息。
  3. 循环输出:将解析出的图片信息进行循环,并按照你的需求(如缩略图、原图、图片描述等)进行输出。

在文章列表页调用(最常用)

这是最常见的场景,比如在首页、列表页或文章页的摘要部分,调用该文章包含的图片集合,做成一个图片轮播或小图集展示。

假设你想在文章列表页(arclist.htm)的摘要部分,每篇文章调用其包含的最多3张图片。

步骤 1:修改列表模板

打开你的列表模板文件,/templets/default/list_article.htm,找到循环输出文章列表的 {dede:arclist} 标签内部。

织梦调用上传图片集合
(图片来源网络,侵删)

在需要显示图片集合的地方,加入以下代码:

{dede:arclist row='10' titlelen='40'}
  <li>
    <!-- 1. 显示文章标题 -->
    <a href="[field:arcurl/]">[field:title/]</a>
    <!-- 2. 调用图片集合 -->
    <div class="imglist">
      {dede:img text=''}
        <a href="[field:arcurl/]"><img src="[field:src/]" alt="[field:text/]" /></a>
      {/dede:img}
    </div>
    <!-- 3. 显示文章摘要 -->
    [field:description function='cn_substr(@me,100)'/]...
  </li>
{/dede:arclist}

代码解析:

  1. {dede:arilogy row='10' ...}: 这是标准的文章列表循环标签。
  2. {dede:img text=''}: 这是核心标签,它必须在 {dede:arclist} 的内部使用,用于解析当前文章内容里的图片集合。
    • text='': 这个属性用于获取图片的描述文字,并赋值给 [field:text/]
    • 它会循环遍历文章中所有的 {dede:img}
  3. [field:src/]: 非常重要,这个字段代表图片的原始地址(原图),如果你想显示缩略图,应该使用 [field:imgsrc/]
  4. [field:text/]: 获取 {dede:img} 标签中设置的 text 属性值,也就是图片的描述。
  5. [field:arcurl/]: 获取文章的链接,这里我们把图片链接指向文章详情页。

进阶:限制显示图片数量

默认情况下,{dede:img} 会调用文章中所有的图片,如果你只想显示前2张或前3张,可以使用 row 属性:

织梦调用上传图片集合
(图片来源网络,侵删)
{dede:img row='2' text=''}
  <a href="[field:arcurl/]"><img src="[field:src/]" alt="[field:text/]" /></a>
{/dede:img}

这样,每篇文章最多只会显示2张图片。


页调用

在文章详情页(article_article.htm)调用图片集合,通常用于制作大图集展示。

步骤 1:修改文章内容模板

打开文章详情模板文件,/templets/default/article_article.htm

在合适的位置(比如标题下方、内容上方)加入以下代码:

<h1>[field:title/]</h1>
<!-- 调用文章中的图片集合,并做成一个列表 -->
<div class="article-gallery">
  <h3>文章图集</h3>
  <ul>
    {dede:img text=''}
      <li>
        <a href="[field:src/]" title="[field:text/]">
          <img src="[field:imgsrc/]" alt="[field:text/]" />
        </a>
        <p class="img-description">[field:text/]</p>
      </li>
    {/dede:img}
  </ul>
</div>
<!-- 原文内容 -->
<div class="article-content">
  [field:body/]
</div>

代码解析:

  • 这里的 {dede:img} 用法和列表页一样,因为它在 {dede:field} 的上下文中,默认会解析当前文章的内容。
  • [field:src/] 作为 <a> 标签的链接,用户点击可以查看高清大图。
  • [field:imgsrc/] 作为 <img> 标签的 src,显示缩略图,加载更快。
  • [field:text/] 显示图片的描述文字。

使用自定义SQL调用(灵活但需谨慎)

如果你想不受限于文章列表,比如在首页某个特定位置调用全站最新的带图集的文章,你可以使用自定义SQL查询。

步骤 1:编写SQL

你需要查询 dede_archives 表获取文章ID,然后根据ID去 dede_addonarticle 表(如果文章模型是“文章”)获取内容,最后再用 {dede:img} 标签解析。

注意:直接操作数据库有风险,请务必先备份!

示例代码(在首页模板 index.htm 中使用):

{dede:sql sql='
    SELECT a.id, a.title, a.arcurl, b.body 
    FROM dede_archives AS a 
    LEFT JOIN dede_addonarticle AS b ON a.id = b.aid 
    WHERE b.body LIKE "{dede:img}%" 
    ORDER BY a.pubdate DESC 
    LIMIT 5
'}
  <div class="featured-article">
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <div class="gallery">
      {dede:img text='' row='1'}
        <a href="[field:arcurl/]"><img src="[field:imgsrc/]" alt="[field:text/]" /></a>
      {/dede:img}
    </div>
  </div>
{/dede:sql}

代码解析:

  1. dede:sql: 执行自定义SQL查询。
  2. WHERE b.body LIKE "{dede:img}%": 这是一个小技巧,用来筛选出内容中包含图片集合的文章,提高查询效率。
  3. LIMIT 5: 只调用最新的5篇文章。
  4. {dede:sql} 循环内部,我们同样使用了 {dede:img} 来解析 body 字段中的图片,这里的 body 是我们通过SQL查询出来的。

常见问题与注意事项 (FAQ)

Q1: 为什么我调用出来的图片是乱码或者不显示? A1: 最常见的原因是:

  • 标签位置错误:确保 {dede:img} 标签在 {dede:arclist}{dede:field} 的内部。
  • 文章中没有图片集合:确认你调用的文章内容里确实使用了 {dede:img} 标签插入了图片,而不是直接用 <img>
  • 路径问题:检查 [field:src/][field:imgsrc/] 输出的路径是否正确。

Q2: [field:src/][field:imgsrc/] 有什么区别?

  • [field:src/]:调用的是 {dede:img} 标签中原始的图片地址,如果你在后台插入时选择的是原图,它就是原图;如果你选择的是缩略图,它就是缩略图。
  • [field:imgsrc/]:调用的是 系统自动生成的缩略图地址,无论你后台插入时选择什么,它都会返回一个经过缩略图处理的图片路径(通常在 /uploads/allimg/ 目录下)。推荐在列表页使用 [field:imgsrc/] 以提高加载速度。

Q3: 如何给调用的图片添加CSS样式? A3: 直接在HTML标签里添加即可。

{dede:img row='3' text=''}
  <img src="[field:imgsrc/]" alt="[field:text/]" class="my-custom-class" />
{/dede:img}

然后在你的CSS文件中定义 .my-custom-class 的样式。

场景 核心标签 位置 用途
文章列表页 {dede:img} {dede:arclist} 内部 调用多篇文章的图片集合,用于摘要展示。
{dede:img} {dede:field} 或任意位置 调用单篇文章的图片集合,用于图集展示。
自定义位置 {dede:img} {dede:sql} 内部 灵活调用任何符合条件的文章图片集合。

希望这份详细的教程能帮助你完全掌握织梦调用图片集合的方法!

-- 展开阅读全文 --
头像
c语言能否编辑html语言
« 上一篇 02-27
dede小视频网站源码
下一篇 » 02-27

相关文章

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