Squarespace 每月活动
Squarespace Events by Month
我正在尝试为我的 Squarespace 网站创建自定义事件列表。我想显示按发生月份分隔的事件。例如,我将有一个 header 表示“六月”,然后在其下方列出六月发生的所有事件。我很乐意在模板代码中执行此操作,而不是使用存档块,以便我可以自定义列表以显示我需要的确切元素。下面的代码显示了我尝试从 6 月发生的事件中显示我想要的项目,但另一张图片是我的结果。我的.equal?谓词没有按我预期的方式工作。如果有人能帮我解决这个问题,我将不胜感激。
<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>
您需要使用 var
directive 来完成此操作。
<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
文件中,则需要进行一些更改。
此外,上述方法适用于您 hard-coding 月份的情况,如您的示例代码所示。
如果您想动态地与当前月份进行比较,我认为最接近的是将其与网站内容最后一次修改的日期进行比较。在许多情况下,这就足够了:
<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>
Brandon 很久以前给我的一个提示是在 squarespace:query 上使用 limit="0" 来只获取即将发生的事件,否则查询也会获取过去的事件!非常好用。
<squarespace:query collection="events" limit="0">
我正在尝试为我的 Squarespace 网站创建自定义事件列表。我想显示按发生月份分隔的事件。例如,我将有一个 header 表示“六月”,然后在其下方列出六月发生的所有事件。我很乐意在模板代码中执行此操作,而不是使用存档块,以便我可以自定义列表以显示我需要的确切元素。下面的代码显示了我尝试从 6 月发生的事件中显示我想要的项目,但另一张图片是我的结果。我的.equal?谓词没有按我预期的方式工作。如果有人能帮我解决这个问题,我将不胜感激。
<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>
您需要使用 var
directive 来完成此操作。
<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
文件中,则需要进行一些更改。
此外,上述方法适用于您 hard-coding 月份的情况,如您的示例代码所示。
如果您想动态地与当前月份进行比较,我认为最接近的是将其与网站内容最后一次修改的日期进行比较。在许多情况下,这就足够了:
<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>
Brandon 很久以前给我的一个提示是在 squarespace:query 上使用 limit="0" 来只获取即将发生的事件,否则查询也会获取过去的事件!非常好用。
<squarespace:query collection="events" limit="0">