You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Liquid循环中嵌套循环?代码突发故障求排查

排查Liquid嵌套循环失效问题

首先明确:当前内层循环的输出元素数量不一定和首次运行一致,以下是具体排查步骤:

1. 验证分类数据源是否变化

你的代码从site.data.list_of_sections_with_categories.yagodnye-kultury获取分类列表,这是最可能的变量点:

  • 检查对应的数据文件(通常在_data目录下),确认yagodnye-kultury数组的元素数量、拼写是否和首次运行时一致,有没有被删除、新增或修改。
  • 临时在代码开头加调试输出:{{ category_names | inspect }},直接查看当前加载的分类列表内容,对比首次运行的预期值。

2. 确认目标文章集合是否变化

外层循环使用site.posts limit:3取最新3篇文章,次日可能有新文章发布,替换了原来的3篇:

  • 如果新文章的categories和category_names中的分类无匹配,会直接导致输出减少甚至为空。
  • 可以临时把外层循环改成固定文章测试,比如:
    {%- assign test_posts = site.posts | where: "slug", "你的测试文章slug" %}
    {%- for post in test_posts %}
    
    用已知分类匹配的文章测试,看是否能正常输出,排除新文章的影响。

3. 检查文章分类的格式匹配

Liquid的contains逻辑对数组和字符串的处理不同,需确认:

  • post.categories是数组还是单个字符串?如果是数组,contains检查元素是否存在;如果是字符串,contains检查子串是否匹配。
  • 临时在内层循环加调试:{{ post.title }} - {{ post.categories | inspect }},查看每篇文章的分类实际值,确认是否和category_names中的元素完全匹配(注意大小写、空格、特殊字符)。

4. 排查引入模板的问题

即使循环匹配成功,如果/second-section-item-1-test.html模板出现问题,也会导致无输出:

  • 检查模板文件是否被删除、修改,或者模板内的逻辑(比如变量引用错误)导致内容无法渲染。
  • 可以临时把include替换成简单输出,比如{{ post.title }} 匹配成功,看是否能正常显示,确认是模板问题还是循环匹配问题。

内容的提问来源于stack exchange,提问作者Dnevnik Ogorodnika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:12:10