Как отфильтровать список изображений с помощью веточки в гравии
Я вставляю список изображений спонсоров в боковую панель в 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') %}