这可以通过修改模板文件或修改程序代码来实现,下面我将为您提供几种最常用和最有效的方法,强烈推荐使用第一种方法(修改模板),因为它最安全、最灵活。

修改模板文件(最推荐,最安全)
这是最理想的方法,因为它不涉及修改程序核心文件,即使未来升级程序,你的修改也不会被覆盖,你只需要在需要显示原图的模板里,把调用缩略图的标签换成调用原图的标签即可。
核心思路: DedeCMS 在上传图片时,原图的路径信息也会被保存在数据库中,我们只需要找到并调用这个原图路径的标签。
步骤:
-
找到原图标签 在你的模板文件中,找到调用缩略图的标签,它通常是下面这个样子:
(图片来源网络,侵删){dede:field name='litpic'/}这个
litpic指的就是缩略图。与缩略图对应,原图的标签是
picname,你只需要将{dede:field name='litpic'/}替换为{dede:field name='picname'/}即可。 -
在首页、列表页等模板中应用 打开你需要显示原图的模板文件,
- 首页模板:
/templets/default/index.htm - 列表页模板:
/templets/default/list_article.htm - 页模板:
/templets/default/article_article.htm
在这些文件中,找到循环输出文章列表的部分,定位到
<img>标签的src属性,将其修改为调用原图。
(图片来源网络,侵删)修改前(调用缩略图):
<a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" /></a>
修改后(调用原图):
<a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" /></a>
- 首页模板:
-
更新缓存 修改完模板文件后,登录 DedeCMS 后台,点击顶部菜单的 “生成” -> “更新主页HTML” 或 “更新栏目HTML”,让系统重新生成页面。
优点:
- 安全: 不修改程序文件,升级无忧。
- 灵活: 可以自由控制哪些地方显示原图,哪些地方显示缩略图,首页列表用缩略图,某个专题页用原图。
修改程序文件(不推荐,但有特定用途)
如果你希望整个系统的所有地方都默认调用原图,而不是缩略图,那么可以考虑修改程序文件。请务必在修改前备份原文件!
核心思路: 修改系统调用文章列表数据的底层代码,将默认的缩略图字段 litpic 替换为原图字段 picname。
步骤:
-
定位核心文件 打开 DedeCMS 的根目录,找到并打开
/include/common.inc.php文件,这个文件是系统的公共函数库。 -
修改函数 在该文件中,找到
GetArcList函数,这个函数是用于获取文章列表数据的,我们需要修改它的默认查询字段。找到类似这样的代码段(具体行号可能因版本不同而异):
// GetArcList 函数内部 $query = "SELECT arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake, arc.senddate,arc.arcrank,arc.click,arc.litpic,arc.memberid, arc.goodpost,arc.badpost,arctype.typedir,arctype.typename, arctype.isdefault,arctype.defaultname,arctype.namerule, arctype.namerule2,arctype.ispart,arctype.moresite, arctype.siteurl FROM `#@__archives` arc LEFT JOIN `#@__arctype` arctype ON arc.typeid=arctype.id WHERE {$orwhere} $ordersql LIMIT $startrow,$row";我们需要将查询结果中的
arc.litpic修改为arc.picname。修改后:
// GetArcList 函数内部 $query = "SELECT arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake, arc.senddate,arc.arcrank,arc.click,arc.picname,arc.memberid, // 将 litpic 改为 picname arc.goodpost,arc.badpost,arctype.typedir,arctype.typename, arctype.isdefault,arctype.defaultname,arctype.namerule, arctype.namerule2,arctype.ispart,arctype.moresite, arctype.siteurl FROM `#@__archives` arc LEFT JOIN `#@__arctype` arctype ON arc.typeid=arctype.id WHERE {$orwhere} $ordersql LIMIT $startrow,$row"; -
更新缓存 保存文件后,同样需要在后台 “生成” -> “更新主页HTML” 或 “更新栏目HTML”,让修改生效。
警告:
- 这种方法会影响所有调用
GetArcList函数的地方,全局生效。 - 如果未来升级 DedeCMS,这个文件会被覆盖,你需要重新修改。
- 如果你的模板里某些地方明确需要缩略图,这种方法会破坏你的布局。
通过修改栏目设置(特定场景)
如果你只想让某个特定栏目下的文章在列表页显示原图,可以在后台修改栏目的“列表选项”。
步骤:
- 登录 DedeCMS 后台。
- 进入 “核心” -> “栏目管理”。
- 找到你想要修改的那个栏目,点击后面的 “更改” 按钮。
- 在栏目编辑页面,找到 “列表选项” 这个选项卡。
- 在里面找到 “列表模板(list_artlist.htm)” 这个选项,不要修改它。
- 找到 *“使用列表模板(list_.htm)”**,确保它指向的是你的列表模板文件,
list_article.htm。 - 关键一步: 在这里并没有直接的选项可以“调用原图”,所以这个方法不能直接实现你的需求,但它引出了第四种方法。
使用SQL命令(批量修复或特殊处理)
如果你的缩略图丢失了,或者数据库中 litpic 字段为空,但 picname 字段有值,你可以通过SQL命令将 picname 的值同步到 litpic 字段,这样,你的模板就无需修改,继续使用 {dede:field.litpic/} 也能显示原图了。
警告: 操作数据库前,务必备份数据库!
步骤:
-
登录你的网站数据库管理工具(如 phpMyAdmin)。
-
选择你的 DedeCMS 数据库。
-
点击“SQL”选项卡,执行以下命令:
UPDATE `dede_archives` SET `litpic` = `picname` WHERE `litpic` = '' OR `litpic` IS NULL;
dede_archives是 DedeCMS 默认的文档主表表名,如果你的前缀不是dede_,请自行修改。- 这个命令的作用是:将
dede_archives表中,所有litpic字段为空或 NULL 的记录的litpic值,更新为对应记录的picname值。
-
执行成功后,你的文章列表就会显示原图了。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 修改模板 | 安全、灵活、升级无忧 | 需要手动修改模板文件 | 强烈推荐,适用于所有需要局部修改的场景。 |
| 修改程序 | 全局生效,一劳永逸(相对) | 风险高、破坏性强、升级覆盖 | 不推荐,除非你确定整个系统都需要原图,且不打算升级。 |
| 修改栏目 | 无直接效果 | 无法实现需求 | 无。 |
| SQL命令 | 批量修复数据,无需改模板 | 有风险,操作需谨慎 | 用于批量修复 litpic 字段为空的问题,使其能正常显示原图。 |
对于绝大多数用户,请选择【方法一:修改模板文件】,这是最专业、最安全、最符合 DedeCMS 设计理念的做法。
