第一步:核心检查(90%的问题出在这里)
当 list 标签调用失败时,首先要检查的是最核心的三个部分:URL规则、栏目属性、模板文件。

(图片来源网络,侵删)
检查栏目URL规则是否正确
这是最最常见的原因。list 标签需要依赖栏目页的URL来获取栏目ID,从而调用该栏目下的文章。
- 问题现象:栏目页空白,或者显示“没有相关信息”。
- 排查方法:
- 进入 DedeCMS 后台 -> 核心 -> 栏目管理。
- 找到你调用列表的那个栏目,点击“修改”。
- 在栏目修改页面,找到“栏目命名规则”这一项。
- 确认这里的规则是否填写了,填写
list_{tid}.html。 - 检查栏目目录:确认“栏目目录”是否填写正确,填写
news。 - 最终生成的URL:那么最终的栏目页URL应该是
你的域名/news/list_1.html(假设栏目ID是1)。 - 检查网站根目录:确认你的网站根目录下是否有这个栏目目录(如
news),很多新手会把整个网站放在一个子目录里(如wwwroot/website),但网站设置里却填的是主域名,这会导致路径错误。
检查栏目属性是否为“列表”
list 标签只能用于“列表栏目”,不能用于“封面栏目”或“外部链接”。
- 问题现象:即使URL正确,栏目页也空白。
- 排查方法:
- 同样在后台“栏目管理”中,找到目标栏目,点击“修改”。
- 在“设置”选项卡中,找到“栏目属性”。
- 务必选择“列表栏目”,如果选择的是“封面栏目”,则该栏目下不会有文章列表,自然调用不出来。
- 确认“列表命名规则”和“文章命名规则”都已设置。
检查模板文件是否存在且路径正确
list 标签需要一个专门的列表页模板文件。
- 问题现象:栏目页内容显示为系统默认的“没有相关信息”或模板本身的HTML代码。
- 排查方法:
- 在后台“栏目管理”修改栏目时,找到“模板”选项。
- 确认这里选择了一个有效的模板,选择
default/list_article.htm。 - 检查模板文件是否存在:通过 FTP 或文件管理器,进入你的 DedeCMS 安装目录下的
/templets/文件夹,确认你选择的模板文件(如list_article.htm)确实存在。 - 检查模板路径:如果你使用了自定义的模板文件夹,确保模板路径正确。
第二步:深入排查(如果核心检查无误)
如果以上三点都确认无误,但问题依旧存在,那么我们需要进行更深入的排查。

(图片来源网络,侵删)
检查 list 标签本身的写法
list 标签的语法必须正确。
- 基本语法:
{dede:list pagesize='10' titlelen='40'} <a href='[field:arcurl/]'>[field:title/]</a> <p>[field:description function='cn_substr(@me,100)'/]...</p> {/dede:list} - 常见错误:
- 拼写错误:
{dede:list}写成了{dede:lis}或{dede:listt}。 - 标签未闭合:忘记写
{/dede:list}。 - 属性错误:
pagesize写成了page_size(虽然小写也能用,但官方文档是驼峰式)。 - 使用了不支持的属性:确保你使用的属性在当前 DedeCMS 版本中是支持的。
- 拼写错误:
检查是否有内容
不是标签调不出来,而是栏目里确实没有内容。
- 排查方法:
- 进入后台的“内容管理 -> 所有档案”。
- 筛选你那个栏目的文章,看看是否有已发布的文章。
- 特别注意文章的“状态”:确保文章是“已审核”状态,草稿或待审核状态的文章不会在列表页显示。
- 检查文章是否被“禁用”或“回收站”。
检查PHP错误和DedeCMS调试
PHP代码的错误或缓存问题也会导致列表无法正常显示。
-
开启调试模式:
(图片来源网络,侵删)- 打开 DedeCMS 根目录下的
/include/config_base.php文件。 - 找到这一行:
$cfg_debug = 'N'; - 将其修改为:
$cfg_debug = 'Y'; - 刷新页面,如果页面顶部或底部有任何红色的 PHP 错误提示,根据错误信息去排查相应的文件或代码。
- 排查完毕后,记得将调试模式关掉,即改回
$cfg_debug = 'N';,否则会暴露网站信息。
- 打开 DedeCMS 根目录下的
-
清理缓存:
- 在后台,进入“系统 -> 系统基本参数 -> 性能选项”。
- 点击“清除所有缓存”。
- 有时,模板缓存或栏目缓存会导致旧的数据被显示,清理缓存后问题可能会解决。
检查栏目ID和栏目模型
- 栏目ID是否正确:
list标签会自动获取当前栏目ID,如果你在封面页或其他页面用typeid属性手动指定ID,请确保ID是正确的,可以在栏目管理页面的URL中看到栏目的ID。 - 栏目模型是否匹配:检查该栏目使用的“栏目模型”是否为“普通文章”模型,如果使用了其他不常见的模型,可能会导致列表调用异常。
第三步:终极解决方案(重建和修复)
如果以上方法都试过了,问题依然存在,可以尝试以下“大招”。
重建栏目目录和文档列表
这是修复栏目数据错乱的常用方法。
- 进入后台“系统 -> 系统设置 -> 全站生成”。
- 在右侧找到“重建栏目目录”和“重建文档列表页”两个选项。
- 分别点击执行,等待系统完成重建,这个过程会重新生成所有栏目页和列表页的静态HTML文件,可以修复因生成失败或文件损坏导致的问题。
检查数据库
这是最极端的情况,适用于网站被篡改或数据库出现严重错误。
- 通过 phpMyAdmin 等工具登录你的数据库。
- 找到
dede_arctype表(栏目表),检查对应栏目的typedir(栏目目录)、isdefault(是否默认)、ishidden(是否隐藏)等字段是否正常。 - 检查
dede_archives表(文档表),看对应栏目的文章是否存在且状态正常。
总结与排查清单
当你遇到 dede list 调用不成功时,按照以下清单逐一排查,效率会高很多:
- [ ] URL规则:后台栏目修改 -> 栏目命名规则是否填写?
- [ ] 栏目属性:后台栏目修改 -> 栏目属性是否为“列表栏目”?
- [ ] 模板文件:后台栏目修改 -> 列表内容模板是否选择?文件是否存在?
- [ ] 标签语法:
{dede:list}标签拼写、闭合、属性是否正确? - [ ] 文章状态:栏目下是否有“已审核”状态的文章?
- [ ] 开启调试:将
$cfg_debug设为 'Y',查看是否有PHP错误? - [ ] 清理缓存:后台清理所有缓存。
- [ ] 重建列表:后台“全站生成” -> “重建文档列表页”。
- [ ] 数据库:检查
dede_arctype和dede_archives表。
希望这份详细的指南能帮助你成功解决问题!
