下面我将从最常见的原因到排查步骤,为你详细分析和解决。

核心原因总结
-
最常见原因:数据表
dede_archives中缺少keywords或tag字段数据。相关文章的调用逻辑,无论是按关键词还是按标签,都依赖于文章发布时填写的关键词或标签,如果这些字段是空的,系统就找不到“相关”的文章,自然就不会显示。
-
模板标签错误或参数不正确。
- 你在模板文件中使用的
{dede:likearticle}标签可能存在语法错误,或者调用方式与你的需求不匹配。
- 你在模板文件中使用的
-
缓存问题。
(图片来源网络,侵删)DedeCMS有强大的缓存机制,如果缓存没有及时更新,即使你修复了数据问题,前台页面可能仍然显示旧的状态(即不显示)。
-
文章数量不足。
如果网站文章总数很少,或者当前文章是最新/最旧的,可能找不到符合条件的相关文章。
详细排查与解决方案
请按照以下步骤逐一排查,大概率能解决问题。

第一步:检查数据源(最关键的一步)
这是最根本的原因,系统需要“原料”才能生成“相关文章”。
检查文章的 keywords (关键词) 字段
-
操作方法:
- 登录你的DedeCMS后台。
- 进入【核心】 -> 【内容维护】 -> 【内容文档管理】。
- 找一篇你希望它显示相关文章的文章,点击【编辑】。
- 在文章编辑页面,找到 这个输入框。
- 确认这里是否填写了内容,填写
织梦,DedeCMS,建站教程。关键词之间用英文逗号隔开。
-
为什么重要:
{dede:likearticle}默认就是根据文章的keywords字段来查找其他包含相同关键词的文章来作为相关文章的,如果这里为空,调用必然失败。
检查文章的 tag (标签) 字段
-
操作方法:
- 同样在文章编辑页面,找到 “TAG标签” 这个输入框。
- 确认这里是否填写了内容,填写
织梦模板dede教程。标签之间用英文逗号隔开。
-
为什么重要:虽然默认调用不依赖标签,但很多开发者会修改标签,使其优先按标签调用,或者,你可能使用了专门调用标签相关文章的标签。
解决方案:
- 批量修复:如果很多文章都缺少关键词或标签,手动修改太慢,你可以使用DedeCMS的SQL命令工具进行批量更新。
- 进入后台【系统】 -> 【SQL命令行工具】。
- 在“运行SQL语句”的文本框中输入命令。
- 批量添加关键词示例 (假设你想给所有文章都加上一个默认关键词,网站建设”):
UPDATE dede_archives SET keywords = CONCAT(IF(keywords='', '', CONCAT(keywords, ',')), '网站建设') WHERE keywords = '' OR keywords IS NULL;
- 警告:在执行SQL前,务必备份数据库!以防万一。
第二步:检查模板标签代码
确保你模板中的调用标签是正确的。
基础调用标签(按关键词)
这是最常用、最标准的调用方式,它会优先调用当前文章的 tag,如果没有 tag 则调用 keywords。
{dede:likearticle row='10' titlelen='42'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
row='10':显示10条相关文章,len='42'`:标题长度限制为42个字符。
强制按关键词调用
如果上面的方法不工作,可以明确指定按 keywords 字段调用。
{dede:likearticle row='10' titlelen='42' keyword=''}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
keyword='':这个参数为空时,会自动获取当前文章的keywords字段值。
强制按标签调用
如果你主要使用标签,可以明确指定按 tag 字段调用。
{dede:likearticle row='10' titlelen='42' tag=''}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
tag='':这个参数为空时,会自动获取当前文章的tag字段值。
检查常见错误
- 拼写错误:确保标签名拼写正确,如
likearticle不是likeartile。 - 中英文符号:确保所有参数中的逗号、引号都是英文半角符号,而不是中文全角符号。
- 循环标签闭合:确保
{dede:likearticle}和{/dede:likearticle}成对出现。
第三步:清除缓存
这是最简单的“万能”解决方法之一。
- 操作方法:
- 登录DedeCMS后台。
- 进入【系统】 -> 【系统基本参数】。
- 在左侧菜单点击【性能选项】。
- 找到 “文件保存目录”,点击旁边的【开始执行】按钮。
- 系统会清空所有缓存文件,执行完毕后,刷新你的前台页面看看。
第四步:检查文章数量
-
操作方法:
- 确认你的网站总共有多少篇文章。
- 检查你正在查看的那篇文章,它的关键词或标签是否很独特。
- 如果你的网站只有几篇文章,或者当前文章的关键词/标签独一无二,系统自然找不到“相关”文章。
-
解决方案:
- 多发布几篇文章,并确保它们之间有相同的关键词或标签。
- 测试时,可以先给两篇文章都加上同一个关键词,测试”,然后看其中一篇是否能显示另一篇。
终极解决方案:手动指定关键词
如果你已经确认数据没问题,标签也没问题,但就是调不出来,可以尝试一种“硬编码”的方式来绕过问题,这能帮你定位问题到底出在哪里。
{dede:likearticle row='10' titlelen='42' keyword='织梦,DedeCMS'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
- 操作:直接在
keyword参数里写死一个你确定存在的关键词,织梦”。 - 观察结果:
- 如果显示了:恭喜你,问题找到了!说明是当前文章的
keywords或tag字段为空,或者有格式问题,回到第一步,检查那篇文章的数据。 - 如果还是不显示:问题可能更深层,比如数据库连接问题、或者
dede_archives表结构损坏(可能性极小)。
- 如果显示了:恭喜你,问题找到了!说明是当前文章的
总结流程建议
遇到“相关文章不显示”问题时,请按以下顺序排查:
- 清缓存 -> 最快,最简单。
- 检查当前文章的
keywords和tag是否填写正确 -> 最常见的原因。 - 检查模板中的
{dede:likearticle}标签语法是否正确 -> 排除代码错误。 - 手动指定
keyword参数测试 -> 用于精确定位问题。 - 检查网站文章数量和关键词分布 -> 排除客观条件限制。
按照这个流程,99%的“相关文章不显示”问题都能得到解决。
