首页 > 解决方案 > 在 Liquid 中循环遍历数组的前 3 项

问题描述

我正在创建一个网站,让您可以根据人们调查的信息浏览人们想要的礼物(除非该网站引起一些关注,否则我只会调查一小部分人 - 我不担心在网站,但这不是我要问的)。

我正在使用 Jekyll 对网站进行编码,所以我当然需要使用 Liquid。

你看,我想对site.posts数组中的前 3 个项目进行排序。

我查看了数组过滤器文档,但似乎找不到任何可以完成我需要完成的工作。

我读了这篇文章,但我不完全确定如何理解那里的答案,因为我不知道什么是“第三循环”,而且我循环浏览帖子的方式无法很好地访问数组数据使用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>

    

标签: arraysjekyllliquid

解决方案


正如评论中所解释的并且答案可能对其他人有所帮助,您可以在循环遍历数组时将限制设置为参数,如下所示:

{% for post in posts limit:3 %}
    Do something
{% endfor %}

推荐阅读