Ghost Blog发布排序顺序

时间:2015-04-20 17:37:47

标签: ghost-blog

有没有人想出一种简单/快捷的方式来使用Ghost自定义的帖子排序顺序?

具体来说,我想实现一个主题,该主题使用Ghost的标签 - {slug} .hbs功能来呈现标签特定页面,这些页面订购最旧的帖子>最新而不是默认的最新>最旧。

任何想法与黑客核心的黑客攻击并造成大混乱?

由于

3 个答案:

答案 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}}部分中