Как отфильтровать список изображений с помощью веточки в гравии

Я вставляю список изображений спонсоров в боковую панель в grav и хочу показывать только изображения, начинающиеся с sponsor_,

На данный момент мой код добавляет любое изображение в папку на странице.

base.html.twig:

<div class="sidebar-right-content">
<!-- insert R sidebar images here     -->

<div class="sponsor-image">
  <h3>Sponsors</h3>
    {% for image in page.media.images %}
      <br>{{ image.html }}
    {% endfor %}
</div>

Я попытался ограничить изображения, возвращаемые с помощью выражения ниже, но изображения не возвращаются:

{% for image in page.media.images if image matches '/^sponsor.*$/' %}

Есть ли способ использовать фильтр в этом контексте?

2 ответа

Решение

После некоторого тестирования нескольких вариантов я нашел несколько неуверенный способ решения этой проблемы. Главное, чтобы предпринять это то, что page.media.images возвращает массив, поэтому мы не можем отфильтровать это как строку. Так что я просто вложил заявление о совпадении. Интересно, есть ли однострочное решение?

{% for image in page.media.images %}
    {% if image.html matches '/.*sponsor.*$/' %}
    <br>{{ image.html }}
    {% endif %}
{% endfor %}

Пытаться: {% image in page.media.images |contains('sponsor') %}

Другие вопросы по тегам