我正在尝试使用Ghost博客中的Get helper按标签获取相关帖子的列表。
我尝试按照cookbook in Ghost docs按标记获取相关帖子,但似乎某些语法略有变化(我知道这是一个测试版功能!)。
但是我在post.hbs(这是在{{#post}}
块内)得到了它:
{{#get "posts" limit="4" include="tags" filter="tags.name:[Test]+posts.id:-{{id}}" as |related|}}
{{!-- do appropriate stuff --}}
{{/get}}
明显的问题是Test
标签在这里是硬编码的。尽管{{tags}}
为我输出了一个标签列表,但它在这里不起作用:
App 22174 stderr: ERROR: Query Error: unexpected character in filter at char 11
App 22174 stderr: tags.name:[[object Object]]+pos
App 22174 stderr: -----------^
App 22174 stderr: Expecting 'NULL', 'TRUE', 'FALSE', 'NUMBER', 'LITERAL', 'STRING', got 'LBRACKET'
App 22174 stderr: Error parsing filter
App 22174 stderr: For more information on how to use filter, see http://api.ghost.org/docs/filter
有人有什么想法吗?
PS这是使用版本0.11.7(我刚看到最近发布了0.11.8,但是the changelog没有注意到我能看到的任何相关内容。)
答案 0 :(得分:4)
我使用过滤器按标签获取相关帖子时也遇到了问题,我终于解决了问题。所以,万一你还没有,或者对于其他可能遇到这个问题的人......
我在解析过滤器方面遇到了问题。这是我的代码现在使用的get
帮助程序正在为我工作(注意:我的侧边栏位于我的{{#post}}
区块内):
{{#get "posts" limit="3" filter="tags:[{{tags[*].slug}}]+id:-{{id}}" include="tags"}}
{{#foreach posts}}
<p>{{title}}</p>
{{/foreach}}
{{/get}}
我的一个问题似乎是我的一些标签是2个单词,这意味着我必须引用标签的slug(这是tags[*].slug
正在做的事情)。
我还有一个标签有一个字母(Ghost自动使C#标签slug c
),过滤器也不是这样的。我将slug编辑为c-sharp
,现在它已全部正常工作。