2016-10-01 8 views
2

私はブログプラットフォームとしてゴーストを使用しています。ユーザーが投稿を読んでいるときに、関連するいくつかの投稿を表示したいと思います。関連するポストゴーストブログ - 現在の投稿を除外

{{#foreach tags limit="1"}} 
    {{#get "posts" filter="tags:{{slug}}" limit="6" include="author,tags" as |article|}} 
     {{#foreach article}} 
      .... 
     {{/foreach}} 
    {{/get}} 
{{/foreach}} 

関連する投稿を取得できましたが、結果から現在の投稿を削除する際に問題が発生しています。

私はフィルタには、このほかに使用することができるはずゴーストのドキュメントによると:このように

"+id:-{{post.id}}" 

{{#get "posts" filter="tags:{{slug}}+id:-{{post.id}}" limit="6" include="author,tags" as |article|}} 

を残念ながら、これは動作していない、{{post.id} }私は範囲内に関係なく何も出力しません。単に{{post.id}}の代わりに{{id}}を使用します。値を取得していますが、タグIDなので正しくありません。

このように{{.. ../id}}タグスコープ内の投稿IDにアクセスすることはできましたが、この方法ではフィルタで使用することはできません。

これを解決する方法については、ご了承ください。

答えて

1

私はjQueryを使用して必要なものを達成しました。

まず、現在の投稿IDに自分の関数を呼び出し、その投稿のタグを取得します。

function getCurrentPosts(id) { 
$.get(ghost.url.api('posts', {filter: 'id:' + id, include: 'tags'})).done(function (data){ 
     var tags = data.posts[0].tags; 
     getRelatedPosts(id, tags) 

}).fail(function (err){ 
    console.log(err); 
    }); 
} 

次に、現在の投稿IDと同じタグを持ち、異なるIDを持つすべての投稿を取得します。

0

私はちょうど{{id}}だと思います。ただ、これを試み、それが現在のポストのIDを削除するが、他の人を残すことによって動作します。

{{#get "posts" limit="all" filter="id:-{{id}}"}} 
    {{#foreach posts}} 
     {{id}} 
    {{/foreach}} 
{{/get}} 

はしかし、あなたの{{#post}}範囲内でなければならないであろう。

+0

私が '{{#post}}'スコープに入っていると言ったように、実際には{{#tag}} 'スコープにあります。 "タグ"。 – Norbert

関連する問題