我有一个
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') } %}
当您在
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 %}