按标签

时间:2017-04-28 17:46:19

标签: ghost

我正在尝试使用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没有注意到我能看到的任何相关内容。)

1 个答案:

答案 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,现在它已全部正常工作。