События Squarespace по месяцам

Я пытаюсь создать собственный список событий для моего сайта Squarespace. Я хотел бы показать события, разделенные месяцем, в котором они происходят. Например, у меня будет заголовок с надписью "Июнь", а затем под ним будет перечислены все события, происходящие в июне. Я хотел бы сделать это в коде шаблона, а не с помощью блока архива, чтобы я мог настроить список, чтобы показать точные элементы, которые мне нужны. Приведенный ниже код показывает мою попытку отобразить элементы, которые я хочу получить от событий, произошедших в июне, однако, другое изображение - мой результат. Мой. Равный? Предикат не работает так, как я хотел. Если бы кто-нибудь мог помочь мне с этим, я был бы очень признателен.

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

1 ответ

Решение

Вы хотите использовать 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>

Совет, который дал мне Брэндон давным-давно, заключался в том, чтобы использовать limit="0" в запросе squarespace: только для получения предстоящих событий, иначе запрос также получит прошлые события! Очень удобно.

<squarespace:query collection="events" limit="0">
Другие вопросы по тегам