Grav CMS 在模板蓝图中按自定义字段排序 | For 循环
Grav CMS Ordering by Custom Field in Template Blueprint | For Loop
我正在尝试通过模板蓝图中的自定义字段对 Grav CMS 中 forloop 的输出进行排序。我有一个事件页面,其中包含实际事件的子页面。我正在尝试遍历子页面并按使用日期的自定义字段对输出进行排序。简而言之,显示按日期排序的最新事件。目前我的循环仅按页面顺序输出,而不是按自定义日期字段输出。
蓝图(自定义日期字段)
header.overview.datestart:
type: datetime
label: Start Date #PLUGIN_ADMIN.DATE
toggleable: true
前端
{% set this_year = "now"|date('M d Y') %}
{% for feature in page.find('/events').children().order('feature.header.overview.datestart').slice(0, 3) %}
<li>
{{ feature.title }}
{{ feature.header.overview.datestart|date("M d Y") }}
</li>
{% endfor %}
上面的代码输出了正确的数据,但不是我需要的顺序。任何帮助,将不胜感激。
正如 Grav 论坛中的回答:
您可以将日期存储为 YYYY-MM-DD 以便于比较。
然后你必须调整你的 if 到 if feature.date|date(‘Y-m-d’)
示例:
{% set this_year = "now"|date('Y-m-d') %}
{% for feature in page.find('/events').children().slice(0, 3) if feature.date|date('Y-m-d') > this_year %}
<li>
{{ feature.title }}
{{ feature.header.overview.datestart|date("M d Y") }}
</li>
{% endfor %}
我正在尝试通过模板蓝图中的自定义字段对 Grav CMS 中 forloop 的输出进行排序。我有一个事件页面,其中包含实际事件的子页面。我正在尝试遍历子页面并按使用日期的自定义字段对输出进行排序。简而言之,显示按日期排序的最新事件。目前我的循环仅按页面顺序输出,而不是按自定义日期字段输出。
蓝图(自定义日期字段)
header.overview.datestart:
type: datetime
label: Start Date #PLUGIN_ADMIN.DATE
toggleable: true
前端
{% set this_year = "now"|date('M d Y') %}
{% for feature in page.find('/events').children().order('feature.header.overview.datestart').slice(0, 3) %}
<li>
{{ feature.title }}
{{ feature.header.overview.datestart|date("M d Y") }}
</li>
{% endfor %}
上面的代码输出了正确的数据,但不是我需要的顺序。任何帮助,将不胜感激。
正如 Grav 论坛中的回答:
您可以将日期存储为 YYYY-MM-DD 以便于比较。 然后你必须调整你的 if 到 if feature.date|date(‘Y-m-d’) 示例:
{% set this_year = "now"|date('Y-m-d') %}
{% for feature in page.find('/events').children().slice(0, 3) if feature.date|date('Y-m-d') > this_year %}
<li>
{{ feature.title }}
{{ feature.header.overview.datestart|date("M d Y") }}
</li>
{% endfor %}