【发布时间】:2020-09-07 15:54:19
【问题描述】:
在我网站的首页,我展示了最新的几篇文章:
{% for post in posts limit: 6 %}
...
{% endfor %}
这很好用。
最近我一直在回去编辑一些旧帖子,我希望它们显示在首页的这个列表中。
我不想更改他们的日期。相反,我一直在为每个帖子添加一个新的lastUpdated 变量,并在我编辑它时添加它的日期。
layout: example
lastUpdated: 2020-09-07
---
所以现在我想修改我首页上的代码,如果帖子有它,它按lastUpdated排序,否则它应该按date排序。
我试过这个:
{% assign posts = site.posts
| reverse
| sort: "lastUpdated"
| reverse %}
{% for post in posts limit: 6 %}
...
{% endfor %}
我认为这行得通,但事实证明它将所有已编辑的帖子(包含lastEdited 变量的帖子)排序到最前面,然后是新创建的帖子。我希望根据“修改”日期,编辑过的帖子和新创建的帖子都显示在此列表中。
我试过这个:
{% assign posts = site.posts
| sort: "lastUpdated or date" %}
{% for post in posts limit: 6 %}
...
{% endfor %}
但这给了我默认顺序的帖子,大概是因为"lastUpdated or date" 不是一个有效的属性。
我也试过这个:
{% assign posts = site.posts
| sort: "lastUpdated" or "date" %}
{% for post in posts limit: 6 %}
...
{% endfor %}
但毫不奇怪,这是一个语法错误。
有没有我想念的简单方法?
【问题讨论】:
标签: jekyll github-pages liquid