dede图片幻灯片标签怎么用?

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

在 DedeCMS 中,实现图片幻灯片(轮播图)功能,最常用、最核心的标签是 {dede:arclist},虽然它叫“文章列表”,但通过指定特定的属性,它可以完美地调用指定栏目的图片,并生成适合幻灯片插件使用的 HTML 结构。

dede图片幻灯片标签
(图片来源网络,侵删)

下面我将从基础用法高级技巧,全面讲解如何使用这个标签。


核心标签:{dede:arclist}

这是实现幻灯片功能的基础,我们需要通过以下属性来精确地获取我们想要的数据。

基础属性解析

为了制作幻灯片,我们需要关注以下几个关键属性:

属性名 作用 示例值 说明
typeid 指定栏目ID typeid='1' 必填,指定要调用哪个栏目下的图片,通常我们会新建一个专门的“首页幻灯片”栏目。
row 调用条数 row='5' 必填,设置你想要展示的图片数量,例如5张就写5。
infolen 简介/摘要长度 infolen='100' 设置摘要显示的字符长度。
imgwidth 图片宽度 imgwidth='980' 重要,设置缩略图的宽度,幻灯片插件会用到这个尺寸。
imgheight 图片高度 imgheight='350' 重要,设置缩略图的高度。
typeid 指定栏目ID typeid='1' 必填,指定要调用哪个栏目下的图片,通常我们会新建一个专门的“首页幻灯片”栏目。
channelid 模型ID channelid='1' 默认为1(文章模型),如果调用的是图集(channelid=2),则需要调整,但通常幻灯片都用文章模型。
orderby 排序方式 orderby='pubdate' 按发布时间排序。orderby='click' 则按点击量排序。
keyword keyword='幻灯片' 调用包含特定关键词的文章。
flag 特性标志 flag='h' h 代表头条,c 代表推荐,p 代表图片,如果希望只调用带图片的文章,可以使用 flag='p'

关键字段:[field:picname/]

{dede:arclist} 循环内部,[field:picname/] 是获取文章第一张缩略图地址的字段,这是制作幻灯片最核心的字段。

dede图片幻灯片标签
(图片来源网络,侵删)

其他常用字段:

  • [field:title/]
  • [field:description/]:文章摘要
  • [field:pubdate function='strftime("%Y-%m-%d",@me)'/]:发布日期,可以使用函数格式化
  • [field:id/]:文章ID
  • [field:arcurl/]:文章链接地址

基础实例:调用指定栏目的图片

假设我们创建了一个栏目,ID为 1,名为“首页幻灯片”,我们想从这个栏目调用最新的5张图片,每张图片尺寸为 980x350 像素。

在需要放置幻灯片的模板文件(通常是 index.htm)中,写入以下代码:

<div class="slideshow">
    <ul class="slides">
        {dede:arclist typeid='1' row='5' imgwidth='980' imgheight='350'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:picname/]" alt="[field:title/]" width="980" height="350">
            </a>
            <div class="title">[field:title/]</div>
        </li>
        {/dede:arclist}
    </ul>
</div>

代码解释:

dede图片幻灯片标签
(图片来源网络,侵删)
  1. {dede:arclist typeid='1' row='5' ...}:调用栏目ID为1的文章,共5条。
  2. imgwidthimgheight:虽然这里设置了,但主要作用是让Dede在生成缩略图时按此尺寸裁剪,图片标签 <img> 中的 widthheight 是为了确保布局稳定。
  3. [field:picname/]:获取每篇文章的第一张缩略图作为幻灯片图片。
  4. [field:arcurl/]:获取文章链接,点击图片后可以跳转到对应文章。
  5. [field:title/]:获取文章标题,用作 imgalt 属性,有利于SEO。

进阶技巧:处理无图文章和自定义样式

处理没有缩略图的文章

如果某些文章没有上传缩略图,[field:picname/] 会为空,导致图片无法显示,我们可以使用 if 条件语句进行判断。

<div class="slideshow">
    <ul class="slides">
        {dede:arclist typeid='1' row='5' imgwidth='980' imgheight='350'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">
                <!-- 如果有缩略图则显示缩略图,否则显示默认图片 -->
                [field:picname runphp='yes']
                if(@me != '') @me = '<img src="' . @me . '" alt="[field:title/]" width="980" height="350">';
                else @me = '<img src="/images/default-slide.jpg" alt="[field:title/]" width="980" height="350">';
                [/field:picname]
            </a>
            <div class="title">[field:title/]</div>
        </li>
        {/dede:arclist}
    </ul>
</div>

说明:

  • runphp='yes':允许在标签内执行PHP代码。
  • if(@me != ''):判断 @me(即 [field:picname/] 的值)是否为空。
  • @me = '...':将PHP处理后的结果重新赋值给 @me,最终输出到模板中。
  • /images/default-slide.jpg:请替换为你自己的默认图片路径。

添加幻灯片指示器和控制按钮

一个完整的幻灯片通常有底部的圆点指示器和左右箭头,我们可以通过修改HTML结构来实现。

<div class="slideshow-container">
    <!-- 幻灯片图片区域 -->
    <div class="slideshow">
        <ul class="slides">
            {dede:arclist typeid='1' row='5' imgwidth='980' imgheight='350'}
            <li>
                <a href="[field:arcurl/]" title="[field:title/]">
                    <img src="[field:picname/]" alt="[field:title/]">
                </a>
            </li>
            {/dede:arclist}
        </ul>
    </div>
    <!-- 左右切换按钮 -->
    <a class="prev" onclick="changeSlide(-1)">&#10094;</a>
    <a class="next" onclick="changeSlide(1)">&#10095;</a>
    <!-- 底部指示器 -->
    <div class="dots-container">
        {dede:arclist typeid='1' row='5'}
        <span class="dot" onclick="currentSlide([field:global.autoindex/])"></span>
        {/dede:arclist}
    </div>
</div>

说明:

  • [field:global.autoindex/]:这是一个全局变量,在 arclist 循环中会自动生成从1开始的序号(1, 2, 3...),非常适合用来制作指示器。

最终步骤:配合JS和CSS实现动画

HTML结构搭建好后,你需要:

  1. 编写CSS:为上述HTML元素添加样式,控制它们的布局、隐藏/显示、过渡效果等。
  2. 引入JS库:可以使用成熟的JS库如 SwiperSlickBootstrap Carousel,它们提供了强大的幻灯片功能,你只需要按照它们的规范,把上面生成的HTML结构替换进去即可。

以 Swiper 为例的整合思路:

  1. 下载 Swiper:从 Swiper 官网 下载最新版本。
  2. 引入文件:在HTML的 <head> 中引入 Swiper 的 CSS 和 JS 文件。
  3. 修改HTML结构:将你的HTML代码包装进 Swiper 规定的结构中。
<!-- Swiper -->
<div class="swiper mySwiper">
    <div class="swiper-wrapper">
        <!-- 这里放你的 {dede:arclist} 循环内容 -->
        {dede:arclist typeid='1' row='5' imgwidth='980' imgheight='350'}
        <div class="swiper-slide">
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:picname/]" alt="[field:title/]">
            </a>
        </div>
        {/dede:arclist}
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
</div>
<!-- Swiper JS -->
<script src="path/to/swiper-bundle.min.js"></script>
<!-- 初始化 Swiper -->
<script>
    var swiper = new Swiper(".mySwiper", {
        loop: true, // 循环模式
        pagination: {
            el: ".swiper-pagination",
            clickable: true,
        },
        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
        },
        autoplay: {
            delay: 3000, // 自动切换时间,单位ms
            disableOnInteraction: false,
        },
    });
</script>
  1. 数据准备:在后台创建“幻灯片”栏目,并上传文章和设置缩略图。
  2. 模板调用:使用 {dede:arclist} 标签在模板中调用这些数据,生成符合JS库要求的HTML结构。
  3. 美化与交互:引入CSS和JS库(如Swiper),实现最终的动画效果。

通过以上步骤,你就可以在 DedeCMS 中灵活地制作出功能强大的图片幻灯片了。

-- 展开阅读全文 --
头像
织梦批量修改图片路径,如何高效操作?
« 上一篇 今天
dede数据库链接失败怎么办?
下一篇 » 今天

相关文章

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

目录[+]