如何在Statamic的Antlers视图中按分类筛选并分组展示FAQ文章?
如何实现按分类分组展示文章链接的FAQ页面?
我需要制作一个FAQ页面,按分类分组展示文章链接,但目前编写的代码仅能显示分类标题,无法列出对应文章。
当前代码如下:
{{ taxonomy:faq_topics sort="title" }} <h2 class="mt-12 text-4xl font-bold hover:text-teal"> <a href="{{ url }}"> {{ title | title }} </a> </h2> {{ collection:faq as="faq" taxonomy:faq_topics="{{slug}}" paginate="10"}} {{ faq }} <div class="mb-2"> <a href="{{ url }}" class="text-lg hover:text-teal tracking-tight leading-tight font-bold"> {{ title | widont }} </a> </div> {{ /faq }} {{ /collection:faq }} {{ /taxonomy:faq_topics }}
问题排查与修复方案
确认分类关联配置
- 检查
faq集合的配置文件(通常在content/collections/faq.yaml),确保已关联faq_topics分类:taxonomies: - faq_topics - 验证每个FAQ文章在后台编辑时,都已选择对应的
faq_topics分类项。
- 检查
修正集合查询的变量作用域
在taxonomy:faq_topics循环内,{{ slug }}指向当前分类的slug,但模板引擎可能存在作用域适配问题,可做以下调整:- 去掉
as="faq",使用默认的entries变量遍历文章(适配Statamic的默认集合查询语法) - 添加
no_results判断,方便调试空数据场景
- 去掉
暂时移除分页调试
分页配置可能干扰初始数据查询,先移除paginate="10",确认文章能正常显示后再重新添加分页逻辑。
修正后的代码示例
{{ taxonomy:faq_topics sort="title" }} <h2 class="mt-12 text-4xl font-bold hover:text-teal"> <a href="{{ url }}"> {{ title | title }} </a> </h2> {{ collection:faq taxonomy:faq_topics="{{ slug }}" }} {{ if no_results }} <p>暂无相关FAQ文章</p> {{ else }} {{ entries }} <div class="mb-2"> <a href="{{ url }}" class="text-lg hover:text-teal tracking-tight leading-tight font-bold"> {{ title | widont }} </a> </div> {{ /entries }} {{ /if }} {{ /collection:faq }} {{ /taxonomy:faq_topics }}
如果需要重新添加分页,可恢复paginate="10",并补充分页导航代码:
{{ pagination }} {{ if prev_page }} <a href="{{ prev_page }}">上一页</a> {{ /if }} {{ current_page }} / {{ total_pages }} {{ if next_page }} <a href="{{ next_page }}">下一页</a> {{ /if }} {{ /pagination }}
内容的提问来源于stack exchange,提问作者Tim Vande Walle
相关产品推荐
相关产品推荐

