Ghost 博客中如何更改文章帖子的排序?图文教程
Ghost 默认按时间顺序显示文章,但通过编辑routes.yaml文件可自定义排序方式,如逆序、按标题。下载文件,定义自定义路由,可实现按发布日期或标题排序,甚至结合 filter 属性限制结果,多个排序方式也可定义,例如先显示特色内容再按时间顺序。灵活运用 routes.yaml 文件,定制 Ghost 网站文章展示方式。
默认情况下,Ghost 在索引页面上以时间顺序显示文章——即从最新到最旧。在本教程中,我们将了解如何编辑你的 routes.yaml
文件,以自定义文章的排序方式,包括逆序、按标题排序等。
下载 routes.yaml
第一步是从【Settings → Labs → Routes 】下载你的 routes.yaml
文件,然后在代码编辑器中打开文件。
定义自定义路由
假设我们有一个电影评论网站,我们在电影发行之日发布评论。默认情况下,Ghost会按最近发布的顺序列出我们的文章。
逆序排列
但假设我们想要逆序排列并显示最旧的电影,你只需要在你的 routes.yaml
文件中添加一行。在下面的例子中,我们创建了一个名为 /movies/
的自定义路由,该路由使用 channel
控制器加载我们的文章。 order
属性接受两个参数:你想要将其排序的字段以及排序方向(asc
表示升序,desc
表示降序)
routes:
/movies/:
controller: channel
order: published_at asc
保存更改并上传到Ghost,导航到 /movies/
并刷新,现在所有文章都将按照升序时间顺序列出,从最旧到最新。
按标题排列
如果我们想要在网站上有一个页面,按电影标题的字母顺序而不是发布日期列出电影。同样,只需对 routes.yaml
文件进行一次简单的更改。
routes:
/movies/:
controller: channel
order: title asc
现在电影以字母顺序显示,如果你有一个产品评论网站,想要创建一个按字母顺序列出这些产品的页面,那么使用这种技术是一个快速、简单的解决方案。
将 order
与 filter
结合使用
此外,你可以添加 filter
属性来限制结果。为了创建一个只显示80年代经典电影的页面,我们可以在加载 /movies/80s/
时添加以下 filter
。
routes:
/movies/80s/:
controller: channel
order: title asc
filter: published_at:>1979-12-31+published_at:<1990-01-01
多个排序方式
最后一个不错的选择是定义多个排序方式,最常见的用例是希望首先返回特色内容,然后是其余内容。在我们的情况下,假设你有两篇文章,我们想要首先展示这两篇,然后是其余的。我们将更新 routes.yaml
如下:
routes:
/movies/:
controller: channel
order: featured desc, published_at desc
现在,我们的《小丑》和《霸王车》的特色内容将首先显示,然后是按时间顺序排列的其余内容。
总结
Ghost 默认按时间顺序显示文章,但通过编辑routes.yaml
文件可自定义排序方式,如逆序、按标题。下载文件,定义自定义路由,可实现按发布日期或标题排序,甚至结合 filter 属性限制结果,多个排序方式也可定义,例如先显示特色内容再按时间顺序。灵活运用 routes.yaml
文件,定制 Ghost 网站文章展示方式。
知识扩展: