dede list为何无内容显示?

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

核心排查思路:

请按照以下顺序逐一排查,每一步都检查是否解决了问题,这能帮助您快速定位症结所在。

dede list 无内容显示
(图片来源网络,侵删)

流程图: 检查栏目设置 -> 数据 -> 检查模板文件 -> 检查标签调用 -> 检查底层循环 -> 检查系统配置


第一步:检查栏目本身是否有内容

这是最容易被忽略,也最常见的原因。

  1. 登录后台:进入您的 Dedecms 后台。
  2. 进入栏目管理:在左侧菜单栏找到「核心」 -> 「栏目管理」。
  3. 找到对应栏目:点击您列表页面对应的那个栏目。
  4. 数量
    • 在栏目列表页面,每个栏目后面都会显示一个数字,[栏目(12)],这个数字代表该栏目及其子栏目下已审核发布的文章总数。
    • 如果这个数字是 0,那么您的列表页自然就没有内容可以显示了,这通常意味着您还没有在这个栏目(或其子栏目)下发布任何文章。

解决方案

  • 如果数字为 0,请去「内容」 -> 「普通文章」中,发布一篇新文章,并在发布时选择这个栏目。
  • 如果您已经发布了文章,但这里显示为 0,请检查文章是否已审核(状态为“审核通过”),未审核的文章不会在列表页显示。

第二步:检查栏目设置与列表模板

有时候栏目有内容,但系统找不到对应的模板文件。

dede list 无内容显示
(图片来源网络,侵删)
  1. 检查栏目列表模板

    • 再次进入「栏目管理」,点击该栏目进行「修改」。
    • 在栏目修改页面,找到「列表选项」标签页。
    • 查看列表模板(list_xxxxx.htm)这一项,这里的 xxxxx 是栏目的ID。
    • 确认模板文件是否存在:系统会提示您模板文件的路径,通常是 /templets/default/ 或您自定义的模板目录下,请通过 FTP 或文件管理器,登录您的网站服务器,检查这个文件 是否存在
    • 确认模板路径是否正确:确保模板路径指向了正确的文件夹,而不是一个不存在的文件夹。
  2. 检查默认列表模板

    • 如果您只为该栏目设置了特定模板,但该模板文件丢失或出错,系统会调用系统默认的列表模板。
    • 请检查 /templets/default/list\_default.htm 文件是否存在,如果这个文件也不存在,那么所有未指定模板的栏目列表页都将无法显示。

解决方案

  • 如果模板文件不存在,请从 Dedecms 的官方安装包中,将对应的 list_default.htm 文件复制到您的模板目录下。
  • 如果模板文件存在,请检查其内容是否完整,是否被误删了关键代码。

第三步:检查列表页模板中的调用标签

这是最核心的排查环节,问题通常出在模板文件的 {dede:list} 标签上。

dede list 无内容显示
(图片来源网络,侵删)
  1. 打开您的列表模板文件list_1.htm
  2. 检查 {dede:list}:
    • 标签是否存在:确保模板中有 {dede:list}{/dede:list} 这一对标签,它们之间的内容就是循环显示的单篇文章样式。
    • 标签格式是否正确:检查标签是否拼写错误,dede:list 写成了 dede:lst
    • 检查属性设置
      • typeid:如果标签里写明了 typeid='1',但您想显示的是所有栏目的内容,请删除这个属性,或者确保它的值是正确的。
      • rowcolrow='10' 表示显示10条,col='1' 表示每行显示1列。row 设置为 0,理论上会显示所有,但有时也可能导致问题,可以先尝试设置为一个具体的数字,如 row='10'
      • titleleninfolen 等属性不影响“有无内容”的判断,只影响内容的显示长度。

错误的示例 (可能导致无内容):

{dede:list typeid='1' row='0'}
    <li><a href='[field:arcurl/]'>[field:title/]</a></li>
{/dede:list}

正确的示例:

{dede:list}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            [field:title/]
        </a>
        <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}

注意:上面的 function="MyDate(...)" 是一个自定义函数,如果函数不存在也可能导致问题,但通常不会导致“无内容”,而是报错,先确保最基础的 [field:title/] 能显示。


第四步:检查底层循环内的字段

{dede:list} 标签本身没问题,但循环内部调用的字段有问题,导致内容无法正确渲染出来,看起来就像没有内容。

  1. 简化测试:将 {dede:list}{/dede:list} 之间的所有代码简化到极致,只保留一个最基础的字段。
  2. 使用标准字段:使用 Dedecms 最核心、最不容易出错的字段,如 [field:title/] (文章标题) 和 [field:arcurl/] (文章链接)。

测试代码

{dede:list}
    <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
{/dede:list}
  • 如果这段简化后的代码可以正常显示标题,说明问题出在您原来模板中的其他字段或标签上(比如自定义字段、图片标签等)。
  • 如果这段简化后的代码依然没有内容,那么问题就出在 {dede:list} 标签本身或其上层环境(如第一步和第二步)。

第五步:检查系统环境与数据库

如果以上所有步骤都排查过了,问题依旧,那么可能是更深层次的原因。

  1. 检查数据库表前缀

    • 登录后台,进入「系统」 -> 「系统基本参数」 -> 「核心设置」
    • 查看数据库表前缀是否为 dede_,如果不是,请确保您的所有模板标签都正确地使用了这个前缀(虽然通常不需要在标签中体现,但这是一个基本配置)。
    • 检查 dede_archives (文章主表)、dede_arctype (栏目表) 等核心数据表是否存在。
  2. 检查文件权限

    • 确保您的网站目录(特别是 /templets//data/ 目录)具有正确的读写权限,权限问题可能导致模板无法被正确读取和编译。
  3. 检查PHP错误日志

    • 如果页面是空白一片,或者源代码里没有任何内容,很可能是PHP执行时出现了致命错误,导致页面无法渲染。
    • 请查看您网站所在服务器的 PHP 错误日志(通常在 cPanel宝塔面板 或其他虚拟主机管理面板中可以找到),根据错误日志的提示来解决问题。
  4. 检查缓存

    • 有时缓存文件损坏也会导致奇怪的问题,登录后台,进入「系统」 -> 「一键更新缓存」,尝试更新一下全站缓存。

总结与快速自检清单

遇到 "Dede list 无内容显示" 时,请按以下清单快速检查:

检查项 解决方案
数据源 栏目下是否有已审核的文章? 发布新文章或审核已有文章。
模板文件 列表模板文件 (list_xxx.htm) 是否存在? 从官方包复制模板文件到正确目录。
标签调用 {dede:list} 标签是否存在、拼写正确? 修正或添加 {dede:list} 循环标签。
底层字段 循环内是否使用了标准字段(如 [field:title/])? 简化模板内容,使用标准字段进行测试。
系统配置 数据库表是否存在?服务器权限是否正确? 检查数据库和服务器环境。
缓存问题 是否是缓存导致? 在后台执行“一键更新缓存”。

按照这个流程,90% 以上的问题都能被找到并解决,如果问题依旧,请提供您的列表页模板代码和栏目设置截图,以便进一步分析。

-- 展开阅读全文 --
头像
dede apache伪静态化如何配置实现?
« 上一篇 01-05
织梦后发布文章的编辑器
下一篇 » 01-05

相关文章

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