织梦图集内容怎么调用

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

下面我将从基础到高级,详细讲解如何在织梦的各种场景下调用图集内容。

织梦图集内容怎么调用
(图片来源网络,侵删)

准备工作:确保图集已正确上传

在调用之前,请确保你的图集内容已经按照正确的方式创建和上传:

  1. 添加图集:在后台“核心” -> “内容模型管理” -> “普通文章” -> “增加一个内容模型”(如果你用的是默认的“普通文章”,则直接添加文章),选择“图集模型”。
  2. 上传图片:在添加或编辑图集文章时,找到“图集内容”区域,点击“上传新图片”按钮,将你的图片上传上去。
  3. 填写图片说明:在上传图片时,最好为每张图片填写“图片说明”,这会在调用时非常有用。
  4. 生成HTML:文章编辑完成后,记得点击“生成HTML”,这样前台才能正确显示。

常用调用方法

主要通过底层模板变量 {dede:arclist}{dede:list},以及专门的 {dede:imglist}{dede:imagelist}

方法1:使用 {dede:arclist} 调用(最常用,推荐)

{dede:arclist} 是调用文章列表的万能标签,同样可以用来调用图集,它的优势在于非常灵活,可以和普通文章混合调用,并且支持各种强大的筛选条件。

基本语法:

{dede:arclist flag='p' typeid='栏目ID' row='10' titlelen='30'}
    <a href="[field:arcurl/]">
        <img src="[field:litpic/]" alt="[field:title/]" />
        <p>[field:title/]</p>
    </a>
{/dede:arclist}

常用参数详解:

织梦图集内容怎么调用
(图片来源网络,侵删)
  • flag='p'关键参数p 代表“图片”,即调用图集类型的文章,如果省略,会调用所有类型的文章。
  • typeid='栏目ID':指定调用某个特定栏目下的图集。typeid='5',如果想调用多个栏目,用逗号隔开,如 typeid='5,6,7'
  • row='10':调用图集的数量,len='30'`:标题长度,字符数。
  • innertext='':在 {dede:arclist}{/dede:arclist} 之间的代码是循环模板,你可以自定义这里的HTML结构。
  • channelid='1'模型ID,普通文章模型ID通常是1,如果你的图集是在独立模型里,可能需要调整。

图集特有的调用字段:

  • [field:litpic/]:调用图集的封面图片,这是图集列表页最常用的字段。
  • [field:arcurl/]:调用图集的详细页链接
  • [field:title/]:调用图集的。
  • [field:textlink/]的超链接形式。

示例:调用首页指定栏目的图集列表

假设你要调用ID为“3”的栏目下的6个图集,显示封面图和标题。

<div class="photo-gallery">
    <h2>最新图集</h2>
    <ul>
        {dede:arclist typeid='3' row='6' flag='p'}
        <li>
            <a href="[field:arcurl/]">
                <img src="[field:litpic/]" alt="[field:title/]" />
                <span class="title">[field:title/]</span>
            </a>
        </li>
        {/dede:arclist}
    </ul>
</div>

方法2:使用 {dede:imglist} 调用(仅在图集列表页使用)

{dede:imglist} 是一个专用标签,用于在图集的列表页(通常是栏目页或首页的图集列表)中调用图集。

织梦图集内容怎么调用
(图片来源网络,侵删)

基本语法:

{dede:imglist row='10' titlelen='20'}
    <dd>
        <a href="[field:arcurl/]">
            <img src="[field:imgsrc/]" alt="[field:text/]" />
            <p>[field:text/]</p>
        </a>
    </dd>
{/dede:imglist}

常用参数:

  • row='10':调用数量,len='20'`:图片说明的长度。
  • typeid='栏目ID':指定栏目。

图集特有的调用字段:

  • [field:imgsrc/]:调用图集中的单张图片的地址
  • [field:text/]:调用这张图片的说明文字
  • [field:arcurl/]:调用图集的详细页链接

注意: {dede:imglist} 会在一个图集里循环遍历所有图片,如果你只想显示每个图集的封面,应该使用 {dede:arclist},这个标签通常用在需要展示所有图片的瀑布流等布局中。


方法3:使用 {dede:list} 调用(在栏目列表页使用)

如果你在一个图集栏目列表页(list_article.htm),想调用该栏目下的所有图集,可以直接使用 {dede:list}

基本语法:

{dede:list pagesize='10' flag='p'}
    <li>
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
            <h3>[field:title/]</h3>
            <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </a>
    </li>
{/dede:list}

参数和字段:{dede:arclist} 基本一致。flag='p' 同样是筛选图集的关键。


进阶调用:获取图集详细页内的所有图片

我们想在图集的详细页article_article.htm)里,调用该图集包含的所有图片和说明。

这时,我们需要使用 {dede:field name='imgurls'}

基本语法:

{dede:field name='imgurls'}
    <dd>
        <a href="[field:imgsrc/]" title="[field:text/]">
            <img src="[field:imgsrc/]" alt="[field:text/]" />
        </a>
        <p class="description">[field:text/]</p>
    </dd>
{/dede:field}

字段解释:

  • [field:imgsrc/]:当前图片的地址。
  • [field:text/]:当前图片的说明文字。

示例:制作一个图集详细页的图片轮播

<div class="slideshow">
    <!-- 轮播图主图 -->
    <div class="main-image">
        {dede:field name='imgurls'}
        <img src="[field:imgsrc/]" alt="[field:text/]" />
        {/dede:field}
    </div>
    <!-- 缩略图列表 -->
    <div class="thumbnail-list">
        {dede:field name='imgurls'}
        <a href="[field:imgsrc/]" title="[field/text/]">
            <img src="[field:imgsrc/]" alt="[field:text/]" />
        </a>
        {/dede:field}
    </div>
</div>

常见问题与技巧

如何调用图集中的第一张图片作为封面?

默认情况下,上传图片时第一张会自动成为封面,但如果你想手动控制或确保调用的是第一张,可以在 {dede:arclist} 循环内使用PHP代码。

{dede:arclist row='5' flag='p'}
    <li>
        <!-- 使用[field:array.runphp='yes']来获取第一张图 -->
        [field:array runphp='yes']
            $dsql = new DedeSql(false);
            $arcid = @me['id'];
            $imgurls = @me['imgurls'];
            // 如果imgurls不为空,说明是图集
            if($imgurls){
                // 解析imgurls,获取第一张图的地址
                $img_array = GetImage($imgurls, 1);
                $img_url = $img_array[0];
                // 输出第一张图的地址
                @me = $img_url;
            }else{
                @me = @me['litpic']; // 如果不是图集,使用默认封面
            }
        [/field:array]
        <a href="[field:arcurl/]">
            <img src="{@me}" alt="[field:title/]" />
        </a>
    </li>
{/dede:arclist}

更简单的方法(推荐): 织梦的 [field:litpic/] 默认就是取图集的第一张图作为封面,所以直接使用即可,无需复杂代码。

如何给图片添加固定尺寸?

为了避免页面布局错乱,通常需要给图片设置固定的宽高。

{dede:arclist row='6' flag='p'}
    <a href="[field:arcurl/]">
        <!-- 使用CSS控制图片大小 -->
        <img src="[field:litpic/]" alt="[field:title/]" class="thumb" />
        <p>[field:title/]</p>
    </a>
{/dede:arclist}

然后在你的CSS文件中添加:

.thumb {
    width: 200px;
    height: 150px;
    object-fit: cover; /* 保持图片比例并填充区域,防止变形 */
}
调用场景 推荐标签 关键参数/字段 说明
首页/其他页调用图集列表 {dede:arclist} flag='p', [field:litpic/] 最常用、最灵活,可跨栏目调用。
图集栏目列表页调用 {dede:list} flag='p', [field:litpic/] 在栏目模板页使用,功能类似arclist。
图集详细页内调用所有图片 {dede:field name='imgurls'} [field:imgsrc/], [field:text/] 用于展示图集内容本身。
瀑布流等展示所有图片 {dede:imglist} [field:imgsrc/], [field:text/] 专用标签,遍历图集内的所有图片。

希望这份详细的指南能帮助你顺利地在织梦CMS中调用图集内容!

-- 展开阅读全文 --
头像
dede如何调用点击次数?
« 上一篇 03-31
织梦如何间隔调用文章?
下一篇 » 03-31

相关文章

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