我正在使用Pico CMS,后者又使用Twig作为模板引擎。我想使用for
循环显示6个在其元数据中定义日期的最新页面。目前我的循环看起来像这样:{% for page in pages|slice(0,6) if page.date and date(page.date) < date() %}
,虽然这里的执行顺序不是我所追求的,因为第一个pages
返回所有页面的数组,无论是否定义了日期或不是,然后它会对数组中的前6个项进行切片,然后才会将这6个项应用于要求页面具有不迟于今天的日期的条件。我对Twig很新,所以我不确定在满足所需条件之后,我会用什么语法对数组进行切片。有什么建议吗?
答案 0 :(得分:1)
最简单的解决方案:
{% set limit = 6 %}
{% for page in pages if page.date and date(page.date) < date() and limit > 0 %}
{# show your entry here #}
{% set limit = limit - 1 %}
{% endfor %}
这很难看,但应该有效。如果变量名称与其他名称相符,请更改limit
变量名称。如果你想要更好的东西,你应该写枝条扩展。