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">