如何在Timber WordPress模板中按术语ID查询分类
问题解决思路及代码方案
核心原因
post.terms() 方法的设计逻辑是仅返回当前文章已关联的术语,你传入的 ID/id/p 参数会被方法内部的关联限制覆盖,所以无法直接通过该参数过滤出特定ID的分类。
正确实现方式
方式1:从文章关联分类中筛选目标ID
直接获取文章所有关联分类,再用Twig的filter过滤器挑出ID匹配的项:
{% set target_category = post.terms('category') | filter(term => term.id == 64) %} {{ dump(target_category) }}
方式2:直接查询指定ID的分类(无需依赖文章关联)
如果你不需要限定为当前文章关联的分类,可直接调用WordPress原生的get_term函数:
{% set target_category = get_term(64, 'category') %} {{ dump(target_category) }}
补充说明
如果你的场景必须用post.terms()的查询参数,也可以通过include参数指定要包含的术语ID(该参数在WP_Term_Query中生效,且会和文章关联的术语做交集):
{% set target_category = post.terms({ taxonomy: 'category', query: { include: [64] } }) %} {{ dump(target_category) }}
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

