2016-12-05 79 views
0

我在grav的侧栏中插入赞助图像的列表,并且只想显示以sponsor_开头的图像。如何在grav中过滤带有树枝的图像列表

目前,我的代码添加页面文件夹中的任何图像。

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.*$/' %} 

是否有使用的方式在这种情况下过滤?

回答

1

的几个选项一些测试后,我发现解决这个问题有点不雅的方式。 最重要的是page.media.images返回一个数组,因此我们不能将其过滤为一个字符串。 所以我只是嵌套一个匹配语句。我想知道是否有单线解决方案。

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

尝试:{% image in page.media.images |contains('sponsor') %}

+0

grav似乎不喜欢那种语法,它会抛出一个错误:0 - 在模板呈现期间抛出异常(“strpos()期望参数1为字符串,数组给定”)在“partials/base.html.twig”的第96行。 – FGiorlando

+0

虽然让我在正确的轨道上,但谢谢! – FGiorlando