dede文章内容页如何加入图片幻灯片?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 DEDE建站 正文
  1. 使用现成的DedeCMS幻灯片插件(推荐,最简单)
  2. 手动修改模板文件,结合JS代码(灵活,需一定代码能力)

使用现成的DedeCMS幻灯片插件(推荐新手使用)

这种方法最简单,无需修改核心文件,安装后即可使用,安全性高。

dede文章内容页中加入图片幻灯片
(图片来源网络,侵删)

步骤 1:下载合适的幻灯片插件

在网上搜索 "DedeCMS 幻灯片插件" 或 "DedeCMS 文章内容页图片轮播插件",有很多免费的资源可以选择,选择一个评价好、下载量高的插件,一些插件的名字可能叫 "DedeCMS文章内容页图片幻灯片插件" 等。

步骤 2:上传并安装插件

  1. 上传文件:将下载的插件包解压,按照说明,将相应的文件和文件夹上传到你的 DedeCMS 网站根目录的指定位置,通常包括:

    • include/ 目录下的PHP文件(用于处理逻辑)。
    • templets/ 目录下的HTML模板文件(用于展示幻灯片)。
    • images/static/ 目录下的JS和CSS文件(用于样式和效果)。
    • 有时还会有一个安装脚本 install.php
  2. 运行安装:如果插件有 install.php,访问你的网站域名加上该文件名(http://www.yoursite.com/install.php),根据提示完成安装,如果没有安装脚本,通常只需要将文件上传到位即可。

步骤 3:修改文章内容页模板

这是最关键的一步,你需要告诉插件在哪个位置显示幻灯片。

dede文章内容页中加入图片幻灯片
(图片来源网络,侵删)
  1. 找到模板文件:登录你的 DedeCMS 后台,进入 模板 -> 默认模板管理 -> 页模板 (article_article.htm),点击 修改

  2. 插入调用代码:在 article_article.htm 文件中,找到 {dede:field.body/} 这一行。在这行代码的上面,插入插件提供的调用代码。

    插件提供的调用代码通常看起来像这样(请以你下载的插件说明为准):

    {dede:php}
        // 这里是插件提供的PHP调用代码
        // require_once(DEDEINC.'/幻灯片插件名.php');
        // 然后执行一个函数来生成幻灯片HTML
    {/dede:php}

    或者是更简单的标签形式:

    dede文章内容页中加入图片幻灯片
    (图片来源网络,侵删)
    {dede:include filename='幻灯片模板文件.htm'/}
  3. 保存模板:保存对 article_article.htm 的修改。

步骤 4:更新文章并测试

  1. 进入“[内容发布]” -> “选择文档”,选中几篇已经发布并且内容中包含多张图片的文章,点击“更新HTML”。
  2. 打开更新后的文章页面,你应该就能看到图片幻灯片效果了。

优点

  • 操作简单,无需懂代码。
  • 安全,不修改DedeCMS核心文件。
  • 通常功能比较完善,支持多种幻灯片效果。

缺点

  • 可能会增加网站的加载负担(如果插件本身臃肿)。
  • 灵活性相对较低,受限于插件的功能。

手动修改模板文件,结合JS代码(推荐有基础的用户)

这种方法更灵活,可以根据自己的喜好定制幻灯片样式和效果,但需要你手动编写或修改少量代码。

准备工作:准备一个幻灯片JS库

我们可以使用非常流行的轻量级库 Swiper,它免费、功能强大且易于使用。

  1. 下载Swiper:访问 Swiper官网,下载最新版本,你只需要 dist 文件夹下的 swiper-bundle.min.jsswiper-bundle.min.css 这两个文件。
  2. 上传文件:将下载的 swiper-bundle.min.jsswiper-bundle.min.css 上传到你模板的公共资源文件夹,/templets/你的默认模板/css//templets/你的默认模板/js/

步骤 1:修改文章内容页模板 (article_article.htm)

  1. 引入Swiper资源:在 article_article.htm<head> 标签内,引入 Swiper 的 CSS 文件。

    <head>
        <meta charset="utf-8">
        <title>{dede:field.title/}_{dede:global.cfg_webname/}</title>
        <!-- 引入Swiper的CSS -->
        <link rel="stylesheet" href="/templets/你的默认模板/css/swiper-bundle.min.css">
        <!-- 其他原有样式... -->
    </head>
  2. {dede:field.body/} 之前添加幻灯片HTML结构

    <!-- 幻灯片容器开始 -->
    <div class="dede-article-slider">
        <!-- 如果文章有图片,则显示幻灯片,否则不显示 -->
        {dede:field.body runphp='yes'}
            $body = @me;
            // 使用正则表达式提取所有img标签的src属性
            preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?>/i', $body, $matches);
            $image_count = count($matches[0]);
            // 如果图片数量大于1,则显示幻灯片
            if ($image_count > 1) {
                echo '<div class="swiper mySwiper">
                          <div class="swiper-wrapper">';
                foreach ($matches[2] as $img_src) {
                    echo '<div class="swiper-slide">
                              <img src="' . $img_src . '" alt="文章配图">
                          </div>';
                }
                echo '</div>
                          <div class="swiper-pagination"></div>
                          <div class="swiper-button-next"></div>
                          <div class="swiper-button-prev"></div>
                      </div>';
            }
            // 如果图片只有一张或不满足条件,则输出空,不影响页面布局
            @me = '';
        {/dede:field.body}
    </div>
    <!-- 幻灯片容器结束 -->
    <!-- 原有的文章内容 -->
    {dede:field.body/}
  3. 在页面底部引入Swiper的JS文件:在 article_article.htm 文件的最底部,</body> 标签之前,引入 Swiper 的 JS 文件。

    <!-- 在 </body> 标签之前 -->
    <!-- 引入Swiper的JS -->
    <script src="/templets/你的默认模板/js/swiper-bundle.min.js"></script>
    <!-- 初始化Swiper的JS代码 -->
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            // 查找所有名为 mySwiper 的幻灯片实例
            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, // 自动切换的时间间隔(毫秒),0表示不自动切换
                    disableOnInteraction: false,
                },
            });
        });
    </script>
    </body>

步骤 2:添加自定义CSS样式(可选)

为了美化幻灯片,你可以在模板的CSS文件(如 style.css)中添加以下样式:

.dede-article-slider {
    width: 100%;
    margin-bottom: 20px; /* 与下方内容的间距 */
    border-radius: 8px;
    overflow: hidden; /* 确保圆角效果 */
}
.dede-article-slider .mySwiper {
    width: 100%;
    height: 400px; /* 设置一个固定高度,可以根据需要调整 */
}
.dede-article-slider .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 保证图片填满容器且不变形 */
}
/* 如果只想在图片大于1张时才显示容器,可以加上这个样式 */
.dede-article-slider:empty {
    display: none;
}

步骤 3:更新并测试

发布”里更新几篇包含多张图片的文章,然后刷新页面查看效果。

优点

  • 极其灵活,可以完全控制幻灯片的样式和行为。
  • 只加载必要的资源,性能较好。
  • 学习后可以应用到其他项目中。

缺点

  • 需要一定的HTML、CSS和JavaScript知识。
  • 需要自己处理图片提取逻辑和边界情况(如没有图片时)。
  • 如果你是新手,或者想快速实现,强烈推荐使用 方法一(插件法)
  • 如果你有一定开发基础,希望幻灯片效果完全符合网站设计,并且不希望安装过多插件方法二(手动法) 是更好的选择。

希望这个详细的教程能帮助你成功在DedeCMS文章内容页中加入图片幻灯片!

-- 展开阅读全文 --
头像
C语言syntax error常见原因有哪些?
« 上一篇 12-13
织梦function如何使用?
下一篇 » 12-13

相关文章

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

目录[+]