Timber wordpress - 包含变量

问题描述 投票:0回答:1

我有一个

hero-block.twig
,其中的英雄变量设置为 fields.hero

{% set hero = fields.hero %}

{% for item in hero %}
 {{item.title}}
{% endfor %}

我想将hero-block.twig包含到其他twig字段中,并将英雄替换为post.meta('hero'),但英雄不返回任何值。我是不是哪里搞错了?

{% include "block/hero-block.twig" with { hero : post.meta('hero') }  %}
wordpress-theming timber
1个回答
0
投票

当您在

hero-block.twig
中设置 hero 时,您当前始终将其设置为
fields.hero
。您应该添加逻辑,以便可以覆盖
hero

{% set hero = hero ?? fields.hero %}

通过使用空合并运算符,您可以检查英雄是否在包含中传递并使用传递的

hero
值,或回退到
fields.hero

如果只使用该变量一次,也可以直接在 for 循环中使用。

{% for item in hero ?? fields.hero %}
    {{ item.title }}
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.