dede默认缩略图随机怎么改?

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

修改 include/helpers/image.helper.php 文件 (最推荐)

这是最规范、最常用的方法,因为它修改的是 DedeCMS 的核心图片处理函数,可以在所有调用缩略图的地方生效,一劳永逸。

dede默认缩略图随机
(图片来源网络,侵删)

操作步骤:

  1. 找到并打开文件

    • 使用 FTP 或主机文件管理器,进入您的 DedeCMS 根目录。
    • 找到并打开文件:/include/helpers/image.helper.php
  2. 定位函数

    • 在文件中找到 function GetDDImage() 函数,这个函数就是用来处理缩略图默认值的。
  3. 修改函数代码

    dede默认缩略图随机
    (图片来源网络,侵删)
    • 找到类似下面这样的代码段(您的版本可能略有不同,但逻辑相似):

      // ... 函数开始 ...
      function GetDDImage($img, $isremote = 1)
      {
        if($img == '' || !file_exists(DEDEROOT.$img))
        {
            // 这里是默认图片的路径
            $img = '/images/defaultpic.gif';
        }
        return $img;
      }
      // ... 函数结束 ...
    • 将其替换为以下随机图片代码:

      // ... 函数开始 ...
      function GetDDImage($img, $isremote = 1)
      {
        if($img == '' || !file_empty(DEDEROOT.$img))
        {
            // 1. 定义你的默认图片文件夹路径
            //    建议:在 /images/ 目录下新建一个文件夹,/images/randpics/
            $default_pic_dir = '/images/randpics/';
            // 2. 获取该文件夹下的所有图片文件
            //    scandir() 会返回一个包含文件和文件夹的数组
            $pics = scandir(DEDEROOT . $default_pic_dir);
            // 3. 过滤掉 '.' 和 '..' 这两个特殊目录
            $pic_list = array_diff($pics, array('.', '..'));
            // 4. 如果文件夹里有图片
            if (count($pic_list) > 0) {
                // 5. 从图片数组中随机选择一个
                $random_pic = $pic_list[array_rand($pic_list)];
                // 6. 组合成完整的图片路径
                $img = $default_pic_dir . $random_pic;
            } else {
                // 如果文件夹为空,则使用一个默认的占位图
                $img = '/images/defaultpic.gif';
            }
        }
        return $img;
      }
      // ... 函数结束 ...
  4. 准备随机图片

    • 在您的网站根目录下的 images 文件夹里,创建一个名为 randpics 的新文件夹(或者您在代码中自定义的任何名字)。
    • 将您希望用作默认缩略图的图片(jpg, png, gif 等)上传到这个 randpics 文件夹中。
  5. 清除缓存

    dede默认缩略图随机
    (图片来源网络,侵删)
    • 登录 DedeCMS 后台。
    • 进入 “系统” -> “一键更新网站” -> “更新HTML”
    • 勾选“更新所有栏目”和“更新文档”,然后点击“开始更新”,这一步是为了让 DedeCMS 重新生成页面,应用新的缩略图逻辑。

完成! 任何没有上传缩略图的文章,在首页、列表页、内容页等地方,都会随机显示 randpics 文件夹里的一张图片。


修改模板文件 (适用于特定页面)

如果您只想在首页或某个特定列表页实现随机缩略图,而不影响全站,可以直接修改模板文件。

操作步骤:

  1. 找到并打开模板文件

    • 要修改首页,就打开 /templets/default/index.htm
    • 要修改列表页,就打开 /templets/default/list_artlist.htm (具体文件名取决于您的栏目模板设置)。
  2. 找到缩略图调用标签

    • 这个标签通常是 [field:picname/]{dede:field name='picname'/}
  3. 替换为随机逻辑

    • 将原来的标签替换为带有 PHP 判断逻辑的代码块。
    • 以首页为例 (index.htm):
      <!-- 原来的代码 -->
      <img src="[field:picname/]" alt="[field:title function='html2text(@me)'/]">
      <!-- 替换为下面的代码 -->
      {dede:php}
          // 定义随机图片文件夹
          $default_pic_dir = '/images/randpics/';
          $pics = scandir(DEDEROOT . $default_pic_dir);
          $pic_list = array_diff($pics, array('.', '..'));
          $random_pic = '/images/defaultpic.gif'; // 默认占位图
          if (count($pic_list) > 0) {
              $random_pic = $default_pic_dir . $pic_list[array_rand($pic_list)];
          }
          // 获取当前文章的缩略图
          $article_pic = $GLOBALS['arc']->Fields['picname'];
          // 如果文章没有缩略图,则使用随机图片
          if(empty($article_pic)) {
              echo $random_pic;
          } else {
              echo $article_pic;
          }
      {/dede:php}
  4. 后续步骤

    • 同样,您需要创建 randpics 文件夹并放入图片。
    • 后台更新相应页面。

注意: 这种方法只对修改的模板文件有效,如果其他模板文件(如内容页 article_article.htm)也调用了缩略图,它们将不会生效。方法一 是更全面、更推荐的方案


使用 DedeCMS 的“默认缩略图”功能 (有局限)

DedeCMS 后台本身有一个“默认缩略图”的设置,但它只能设置一张固定的图片,无法实现随机。

操作路径: 后台 -> 系统 -> 系统基本参数 -> 附件设置 -> 默认缩略图

您可以在这里设置一张图片路径,但这不符合“随机”的要求,所以此方法仅作为备选,当您只想用一张固定默认图时使用。


总结与建议

方法 优点 缺点 推荐度
修改 image.helper.php 一劳永逸,全站生效,代码规范,维护方便 需要修改核心文件,对新手有技术门槛 ★★★★★ (最推荐)
修改模板文件 针对性强,可以控制特定页面,无需修改核心文件 只对修改的模板有效,如果模板多则维护繁琐 ★★★☆☆ (适用于特定需求)
后台设置 操作简单,无代码风险 只能设置一张固定图片,无法实现随机 ★★☆☆☆ (不符合需求)

强烈建议您使用 方法一,虽然需要修改核心文件,但这是解决此类问题的标准做法,也是最稳定、最可靠的方法,请务必在修改前备份原文件,以防万一。

-- 展开阅读全文 --
头像
手机浏览器真的支持dede系统吗?
« 上一篇 03-04
dede验证码错误怎么办?
下一篇 » 03-04

相关文章

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

目录[+]