有没有人想出一种简单/快捷的方式来使用Ghost自定义的帖子排序顺序?
具体来说,我想实现一个主题,该主题使用Ghost的标签 - {slug} .hbs功能来呈现标签特定页面,这些页面订购最旧的帖子>最新而不是默认的最新>最旧。
任何想法与黑客核心的黑客攻击并造成大混乱?
由于
答案 0 :(得分:1)
请参阅:https://github.com/TryGhost/Ghost/issues/5602,
订购最早的帖子>最新,编辑 core \ server \ models \ post.js 文件,找到orderDefaultOptions
函数并更改published_at
值('ASC'):
orderDefaultOptions: function orderDefaultOptions() {
return {
status: 'ASC',
published_at: 'ASC',
updated_at: 'DESC',
id: 'DESC'
};
},
答案 1 :(得分:1)
您无法使博客引擎返回不同的排序顺序。但你可以做的是使用模板代码丢弃引擎提供的结果,并使用#get
帮助程序获取新结果。
{{#has any="tag.feature_image"}}
{{#get "posts" filter="tags.slug:{{tag.slug}}" limit=100 order="published_at asc"}}
<!-- `posts` from the parent context is overwritten by get -->
{> "loop"}}
{{/get}}
{{else}}
<!-- default loop -->
{{> "loop"}}
{{/has}}
例如,如果标签有featured_image
,我想按时间顺序列出tag.hbs中的帖子。因此,对于此类标记,我使用#get
帮助程序按时间顺序(order="published_at asc"
)获取帖子。如果不是,则显示博客引擎已按相反顺序提供的帖子。
答案 2 :(得分:0)
添加此行
"postinstall": "sed -i \"s/published_at: 'DESC'/published_at: 'ASC'/g\" node_modules/ghost/core/server/models/post.js && sed -i \"s/_at DESC,'/_at ASC,'/g\" node_modules/ghost/core/server/models/post.js",
在您的scripts
的{{1}}部分中