第一步:核心问题排查(最常见原因)
请检查最核心的两个地方:编辑和前台模板调用。

编辑问题
在后台发布或编辑文章时,你是否正确使用了自定义多图字段?
-
字段类型是否正确?
- 进入后台
核心->内容模型管理->普通文章(或其他你使用的模型) ->字段管理。 - 找到你使用的那个“自定义多图”字段,确认它的字段类型是
multiimg,如果不是,请修改为multiimg。
- 进入后台
-
上传图片时是否勾选了“使用默认值”?
- 编辑页,找到这个多图字段。
- 点击“上传图片”按钮,上传图片后,在弹出的窗口下方,务必勾选“使用默认值”,如果不勾选,图片信息不会被保存到数据库中,前台自然无法调用。
- 勾选后,你会在编辑区看到图片的缩略图列表。
-
是否点击了“保存”按钮?
(图片来源网络,侵删)- 上传并勾选后,一定要点击文章编辑页最下方的 “保存” 或 “发布” 按钮,将图片信息提交到数据库。
前台模板调用问题
这是导致不显示的另一个重灾区,请检查你调用图片的模板文件(通常是 article_article.htm)。
-
标签语法是否正确?
- DedeCMS 调用多图字段的标准标签是
{dede:field.你的字段名/}。 - 如果你的字段名是
pics,那么标签就是{dede:field.pics/}。 - 常见错误:字段名写错,或者误用了单图标签
{dede:field.litpic/}。
- DedeCMS 调用多图字段的标准标签是
-
图片列表格式是否正确?
{dede:field.pics/}这个标签输出的不是直接的<img>标签,而是一个被 分隔的图片路径字符串。- 它的格式通常是:
图片1路径|图片2路径|图片3路径... - 你需要使用
{dede:field.pics function='str_replace("|", "", @me)'/}来处理,或者更推荐使用下面的循环方式来逐个显示图片。
第二步:正确的模板调用代码
强烈推荐使用 loop 循环 的方式来调用多图,这样更灵活,也更容易控制样式。

假设你的多图字段名为 pics。
简单的循环显示(推荐)
这是最常用且最稳妥的方法,它会循环输出每一张图片的完整 代码解释: 如果你想把图片做成点击可以放大的幻灯片效果,可以使用下面的代码。 注意: 这个方案需要配合 jQuery 和一个图片灯箱插件(如 Fancybox 或lightbox)才能实现完整效果,这里只展示了 HTML 结构。 如果以上两步都检查无误,图片还是不显示,请继续排查以下问题。 你可以通过 FTP 客户端(如 FileZilla)右键 -> 文件权限来修改。 当遇到“自定义多张图片不显示”时,请按以下清单逐一排查: 按照这个流程,99% 的自定义多图不显示问题都能得到解决,如果问题依旧,请提供你的 字段名、后台勾选截图、前台模板调用代码,以便进一步分析。<img>
{dede:field.pics runphp='yes'}
// @me 默认值是 "图片1|图片2|图片3..."
// 我们用 "||" 作为分隔符,替换掉 "|"
// 这样 explode 函数就不会把图片路径中的 "/" 也分割开
$images = explode('||', str_replace('||', '|', @me));
foreach($images as $img){
if($img != ''){
// 输出标准的 img 标签
// 你可以在这里添加 class、style 等属性
echo "<img src='".$img."' alt='产品图片' style='width:200px; height:150px; margin:5px;' />\n";
}
}
{/dede:field.pics}
runphp='yes':允许在标签内使用 PHP 代码。str_replace('||', '|', @me):这是一个技巧,先将 替换为 ,再用 分割,可以避免路径中的 被错误分割。explode('||', ...):将字符串分割成数组。foreach($images as $img):遍历数组,对每张图片进行处理。echo "<img ... />":输出图片标签,你可以自由修改这里的样式。带链接的图片幻灯片(常用)
<!-- 用于存放图片的容器 -->
<div id="product-gallery">
{dede:field.pics runphp='yes'}
$images = explode('||', str_replace('||', '|', @me));
$imgCount = count($images);
$index = 0;
foreach($images as $img){
if($img != ''){
// 第一张图片作为主图,其他隐藏
$style = ($index == 0) ? '' : 'style="display:none;"';
echo "
<div class='gallery-item' {$style}>
<a href='{$img}' rel='example_group'>
<img src='{$img}' alt='产品图片' width='400' height='300' />
</a>
</div>";
$index++;
}
}
{/dede:field.pics}
</div>
<!-- 用于缩略图导航的容器 -->
<div id="gallery-thumbs">
{dede:field.pics runphp='yes'}
$images = explode('||', str_replace('||', '|', @me));
$index = 0;
foreach($images as $img){
if($img != ''){
// 第一张缩略图高亮
$class = ($index == 0) ? 'class="active"' : '';
echo "<a href='#' {$class} data-index='{$index}'><img src='{$img}' alt='缩略图' width='80' height='60' /></a>";
$index++;
}
}
{/dede:field.pics}
</div>
第三步:其他可能的原因
服务器路径问题
/uploads/allimg/202510/10/1.jpg),有时会因为网站根目录配置问题导致找不到。系统 -> 系统基本参数 -> 核心设置,找到 “附件保存目录” 和 “附件目录相对路径” 这两项。是,这样,数据库里保存的就是相对于网站根目录的路径,通常最稳定。文件权限问题
/uploads/ 或 /data/)的权限是否正确,Linux 服务器上,通常需要设置为 755 或 775。644。缓存问题
Ctrl + F5 强制刷新浏览器。系统 -> 系统基本参数 -> 性能选项,将 “是否开启页面静态化” 设为 否,清空缓存后再试,如果显示正常,再开启回来,或者直接在后台的 “首页更新” 或 “一键更新网站” 功能中清空所有缓存。图片本身问题
&, , 空格 等特殊字符,DedeCMS 对这些字符处理可能不友好,建议将文件名改为拼音或数字下划线格式。
总结与排查清单
multiimg。{dede:field.pics/}。loop 循环代码 来调用图片。是。
