我正在尝试找出创建Twig组件的正确方法,该组件的嵌套深度为3。
我有一个树枝文件,该文件仅创建带有类的标题:
header.twig
<h2>{% block content %}{% endblock %}</h2>
然后是一个中级的树枝文件,该文件消耗了该标头以及其他低级树枝:
section.twig
<div class="section">
{% block header %}
{% embed "components/header.twig" %}
{% block content %}
{{ header }}
{% endblock %}
{% endembed %}
{% endblock %}
</div>
最后是消耗该部分树枝的页面高级组件:
page.twig
<div class="page">
{{ include("mid/section.twig", { header: fields.header }) }}
</div>
现在您可以在section.twig
中看到,我可以覆盖创建的块,但是在最高级别page.twig
中,我不能覆盖两次,因此必须使用include而不是嵌入。
对我来说,这感觉不正确,而且感觉很冗长。需要说明的是,我使用的是ACF,所以这就是fields.header
的来源,是的,我知道header.twig
可以直接访问该值,但是我正在尝试创建一个结构,其中低层和中层组件是“哑”和高级组件控制数据。
对于给定的情况,我是要以这种最佳方式进行工作,还是有另一种更清洁的方式不涉及混合嵌入和包含内容?