我正在尝试为我的Squarespace网站创建自定义事件列表。我想展示按事件发生的月份分开的事件。例如,我将有一个标题,上面写着"六月",然后在它下面列出六月发生的所有事件。我很想在模板代码中执行此操作,而不是使用存档块,以便我可以自定义列表以显示我需要的确切元素。下面的代码显示了我尝试从 6 月发生的事件中显示我想要的项目,但是,另一张图像是我的结果。我的平等?谓词没有按照我想要的方式工作。如果有人能帮助我解决这个问题,我将不胜感激。
<div class="events_month_loop">
{.repeated section items}
{.equal?:{startDate|date %B:"June"}
<div id="events-{id}">
<div class="event_info">
<a href="{fullUrl}">Event Link</a>
</div>
</div>
{.end}
{.or}
<p>No events in June</p>
{.end}
</div>
Brandon 很久以前给我的一个提示是在 squarespace:query 上使用 limit="0" 来获取即将发生的事件,否则查询也会获取过去的事件!非常方便。
<squarespace:query collection="events" limit="0">
使用 var
指令来完成此操作。
<squarespace:query collection="events">
<div class="events_month_loop">
{.repeated section items}
{.var @smonth startDate|date %B}
{.equal? @smonth "June"}
<div id="events-{id}">
<div class="event_info">
<a href="{fullUrl}">Event Link</a>
</div>
</div>
{.end}
{.or}
<p>No events in June</p>
{.end}
</div>
</squarespace:query>
一个注意事项:我假设这是在squarespace:query
.如果这是在.list
文件中,则需要进行一些更改。
此外,上述方法适用于对月份进行硬编码的情况,如示例代码所示。
如果您想动态比较当前月份,我认为您可以获得的最接近的方法是将其与上次修改网站内容的日期进行比较。在许多情况下,这就足够了:
<squarespace:query collection="events">
<div class="events_month_loop">
{.var @cmonth website.contentModifiedOn|date %B}
{.repeated section items}
{.var @smonth startDate|date %B}
{.equal? @smonth @cmonth}
<div id="events-{id}">
<div class="event_info">
<a href="{fullUrl}">Event Link</a>
</div>
</div>
{.end}
{.or}
<p>No events in {@cmonth}</p>
{.end}
</div>
</squarespace:query>