[英]Related Posts In Ghost Blog - Excluding Current Post
我使用 Ghost 作為博客平台。 當用戶閱讀帖子時,我想顯示一些相關的帖子。
{{#foreach tags limit="1"}}
{{#get "posts" filter="tags:{{slug}}" limit="6" include="author,tags" as |article|}}
{{#foreach article}}
....
{{/foreach}}
{{/get}}
{{/foreach}}
我設法獲得了相關帖子,但在從結果中刪除當前帖子時遇到了問題。
根據 Ghost 文檔,我應該能夠在過濾器中使用此附加功能:
"+id:-{{post.id}}"
像這樣:
{{#get "posts" filter="tags:{{slug}}+id:-{{post.id}}" limit="6" include="author,tags" as |article|}}
不幸的是,這不起作用,{{post.id}} 甚至不打印出任何內容,無論我在什么范圍內。只需使用 {{id}} 而不是 {{post.id}} 我得到一個值,但是這是標簽 ID,所以這是不正確的。
我設法以這種方式在標簽范圍內訪問我的帖子 ID {{../id}} 但我不能以這種方式在過濾器中使用它,它也不起作用。
關於如何解決它的任何想法將不勝感激。
我使用 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 的帖子。
function getRelatedPosts(id, tags) {
tags = tags.map(function(obj){
return obj.slug ;
}).join(', ');
tags = '[' + tags + ']';
$.get(ghost.url.api('posts', {filter: 'id:-' + id + ' +tags:' + tags, include: "author, tags" })).done(function (data){
var posts = data.posts;
console.log(posts.length)
if (posts.length > 0) {
showRelatedPosts(posts);
}
else{
$('.related-section').hide();
}
}).fail(function (err){
console.log(err);
});
}
我認為只有{{id}}
會起作用。 剛試過這個,它的工作原理是刪除當前帖子的 id 但留下其他帖子:
{{#get "posts" limit="all" filter="id:-{{id}}"}}
{{#foreach posts}}
{{id}}
{{/foreach}}
{{/get}}
不過必須在您的{{#post}}
范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.