Ghost 博客中如何更改文章帖子的排序?图文教程

Ghost 默认按时间顺序显示文章,但通过编辑routes.yaml文件可自定义排序方式,如逆序、按标题。下载文件,定义自定义路由,可实现按发布日期或标题排序,甚至结合 filter 属性限制结果,多个排序方式也可定义,例如先显示特色内容再按时间顺序。灵活运用 routes.yaml 文件,定制 Ghost 网站文章展示方式。

主页 > 博客 > Ghost 博客中如何更改文章帖子的排序?图文教程

默认情况下,Ghost 在索引页面上以时间顺序显示文章——即从最新到最旧。在本教程中,我们将了解如何编辑你的 routes.yaml 文件,以自定义文章的排序方式,包括逆序、按标题排序等。

下载 routes.yaml

第一步是从【Settings Labs Routes 】下载你的 routes.yaml 文件,然后在代码编辑器中打开文件。

Ghost 博客更改文章帖子的排序

定义自定义路由

假设我们有一个电影评论网站,我们在电影发行之日发布评论。默认情况下,Ghost会按最近发布的顺序列出我们的文章。

Ghost 博客更改文章帖子的排序

逆序排列

但假设我们想要逆序排列并显示最旧的电影,你只需要在你的 routes.yaml 文件中添加一行。在下面的例子中,我们创建了一个名为 /movies/ 的自定义路由,该路由使用 channel 控制器加载我们的文章。 order 属性接受两个参数:你想要将其排序的字段以及排序方向(asc 表示升序,desc 表示降序)

routes:
  /movies/:
      controller: channel
      order: published_at asc

保存更改并上传到Ghost,导航到 /movies/ 并刷新,现在所有文章都将按照升序时间顺序列出,从最旧到最新。

Ghost 博客更改文章帖子的排序

按标题排列

如果我们想要在网站上有一个页面,按电影标题的字母顺序而不是发布日期列出电影。同样,只需对 routes.yaml 文件进行一次简单的更改。

routes:
  /movies/:
      controller: channel
      order: title asc

现在电影以字母顺序显示,如果你有一个产品评论网站,想要创建一个按字母顺序列出这些产品的页面,那么使用这种技术是一个快速、简单的解决方案。

Ghost 博客更改文章帖子的排序

orderfilter 结合使用

此外,你可以添加 filter 属性来限制结果。为了创建一个只显示80年代经典电影的页面,我们可以在加载 /movies/80s/ 时添加以下 filter

routes:
  /movies/80s/:
    controller: channel
      order: title asc
      filter: published_at:>1979-12-31+published_at:<1990-01-01 
Ghost 博客更改文章帖子的排序

多个排序方式

最后一个不错的选择是定义多个排序方式,最常见的用例是希望首先返回特色内容,然后是其余内容。在我们的情况下,假设你有两篇文章,我们想要首先展示这两篇,然后是其余的。我们将更新 routes.yaml 如下:

routes:
  /movies/:
  controller: channel
  order: featured desc, published_at desc
 

现在,我们的《小丑》和《霸王车》的特色内容将首先显示,然后是按时间顺序排列的其余内容。

Ghost 博客更改文章帖子的排序

总结

Ghost 默认按时间顺序显示文章,但通过编辑routes.yaml文件可自定义排序方式,如逆序、按标题。下载文件,定义自定义路由,可实现按发布日期或标题排序,甚至结合 filter 属性限制结果,多个排序方式也可定义,例如先显示特色内容再按时间顺序。灵活运用 routes.yaml 文件,定制 Ghost 网站文章展示方式。

Ghost 博客中如何更改文章帖子的排序?图文教程
Ghost 默认按时间顺序显示文章,但通过编辑routes.yaml文件可自定义排序方式,如逆序、按标题。下载文件,定义自定义路由,可实现按发布日期或标题排序,甚至结合 filter 属性限制结果,多个排序方式也可定义,例如先显示特色内容再按时间顺序。灵活运用 routes.yaml 文件,定制 Ghost 网站文章展示方式。

知识扩展: