Ghost中如何用API及get助手获取全部内部标签?
如何在Ghost的page.hbs中通过get助手获取所有内部标签?
我懂你遇到的困扰了——在post模板里用{{#foreach tags visibility="internal"}}能顺利拿到内部标签,但换到page模板用{{#get}}助手却怎么都拿不到,试了好几种参数组合都没结果。其实问题出在filter参数的正确语法上,Ghost的Content API对过滤条件的格式有明确要求,你之前的写法有小疏漏。
正确的实现代码
你可以用下面这段代码来获取所有内部标签:
{{#get "tags" filter="visibility:internal" limit="all"}} {{#foreach tags}} {{name}} {{/foreach}} {{/get}}
为什么之前的写法不生效?
- 你试过的
{{#get "tags" visibility="internal"}}是错误的,因为visibility并不是{{#get}}助手的直接参数,它属于过滤条件范畴,必须嵌套在filter参数里传递。 - 而
{{#get "tags" filter="visibility:internal"}}本身语法是正确的,如果没返回结果,可能是遇到了缓存问题,或者你需要确认Ghost版本是否支持该过滤条件(Ghost 2.0及以上版本已经支持标签的visibility属性过滤)。
顺便补充个细节:post模板里的{{#foreach tags visibility="internal"}}能生效,是因为{{#foreach}}助手本身支持visibility这个快捷参数,而{{#get}}助手需要通过filter来传递这类条件,两者的参数规则是不一样的。
如果还是没结果,可以尝试清除Ghost的缓存,或者后台确认一下你的内部标签确实存在(在标签管理页查看标签的可见性是否设置为“内部”)。
内容的提问来源于stack exchange,提问作者Daniel




