循环遍历 Liquid 中数组的前 3 项
Loop through the first 3 items of an array in Liquid
我正在创建一个网站,让您可以根据人们调查的信息浏览人们想要的礼物(我只会调查一小部分人,除非该网站受到关注 - 我不担心创建一个网站上的列表非常多,但这不是我在这里要问的)。
我正在用 Jekyll 编写网站代码,所以我当然需要使用 Liquid。
你看,我想对 site.posts
数组中的前 3 项进行排序。
我查看了 array filters documentation,但我似乎找不到任何可以完成我需要完成的事情。
我读过 this post,但我不完全确定如何理解那里的答案,因为我不知道什么是“第三个循环”,也不知道我循环的方式posts 不能很好地使用 site.posts[0]
、site.posts[1]
等访问数组数据。这会使代码变得笨重,但我想如果需要我可以这样做。
这是我现在拥有的代码:
<h2>Recently added gifts</h2>
<div class="posts">
{% assign posts = site.posts %}
{% for post in posts %}
{% unless post.list %}
<div class="post">
<h3 class="post-title">
<a href="{{ post.url | relative_url }}">
{{ post.title }}
</a>
</h3>
<time datetime="{{ post.date | date_to_xmlschema }}" class="post-meta">{{ post.date | date_to_string }}</time>
<p class="post-excerpt">
{% if post.description %}
{{ post.description | strip_html }}
{% else %}
{{ post.excerpt | strip_html }}
{% endif %}
</p>
</div>
{% endunless %}
{% endfor %}
</div>
正如评论中所解释的那样,由于答案可能对其他人有帮助,您可以在遍历数组时将限制设置为参数,如下所示:
{% for post in posts limit:3 %}
Do something
{% endfor %}
我正在创建一个网站,让您可以根据人们调查的信息浏览人们想要的礼物(我只会调查一小部分人,除非该网站受到关注 - 我不担心创建一个网站上的列表非常多,但这不是我在这里要问的)。
我正在用 Jekyll 编写网站代码,所以我当然需要使用 Liquid。
你看,我想对 site.posts
数组中的前 3 项进行排序。
我查看了 array filters documentation,但我似乎找不到任何可以完成我需要完成的事情。
我读过 this post,但我不完全确定如何理解那里的答案,因为我不知道什么是“第三个循环”,也不知道我循环的方式posts 不能很好地使用 site.posts[0]
、site.posts[1]
等访问数组数据。这会使代码变得笨重,但我想如果需要我可以这样做。
这是我现在拥有的代码:
<h2>Recently added gifts</h2>
<div class="posts">
{% assign posts = site.posts %}
{% for post in posts %}
{% unless post.list %}
<div class="post">
<h3 class="post-title">
<a href="{{ post.url | relative_url }}">
{{ post.title }}
</a>
</h3>
<time datetime="{{ post.date | date_to_xmlschema }}" class="post-meta">{{ post.date | date_to_string }}</time>
<p class="post-excerpt">
{% if post.description %}
{{ post.description | strip_html }}
{% else %}
{{ post.excerpt | strip_html }}
{% endif %}
</p>
</div>
{% endunless %}
{% endfor %}
</div>
正如评论中所解释的那样,由于答案可能对其他人有帮助,您可以在遍历数组时将限制设置为参数,如下所示:
{% for post in posts limit:3 %}
Do something
{% endfor %}