Timber / Wordpress - 嵌套块无效

时间:2018-03-15 00:00:29

标签: wordpress twig timber

我一直在关注文档,教程和一些YouTube视频,我永远无法获得块嵌套和“扩展”工作。除此之外,木材似乎正常运作。

在views文件夹中,我有以下两个文件:

base.twig

test.twig

base.twig

中的

{% block content %}
    ........
{% endblock %}
test.twig

中的

{% extends "base.twig" %}

{% block content %}
 This is a test
{% endblock %}

从我一直关注的,代码是正确的,我应该得到“这是一个测试”的输出,对吧?但相反,我仍然得到“.....”。

---- ---- EDIT

好的,我想出了一些问题,在我的php文件中,我正在渲染base.twig。哪个显然没有做任何关联test.twig。因此,当我渲染test.twig时,我得到了我正在寻找的行为。

然而,这并没有解释如何进行多个块嵌套...我可以在同一个块中嵌套多个深的文件..但是如果你有两个独立的块,那该怎么办?相同的枝条文件?处理多个块的方法是什么?我无法找到有关该案例或任何案例的文档。

1 个答案:

答案 0 :(得分:2)

我认为你可能会对阻碍和扩展工作感到困惑......

如果您真的希望看到这方面的好例子,请查看Timber Starter theme并查看它们提供的各种.twig文件。如果您正在使用Timber构建网站,我强烈建议您使用此主题开始。

关于你的最新评论(我没有足够的代表评论,否则我会),这个例子有一个block head& block footer内的base.twig。因此,当您在新的twig文件中扩展此base.twig文件时,请说:home.twig例如:

{% block head %}
    This is your home.twig head content, which will replace base.twig content
{% endblock %}


{% block footer %}
    This is your home.twig footer content, which will replace base.twig content
{% endblock %}

所以在你的base.twig中,这些块是动态占位符。当你扩展base.twig并在这些块中添加新内容时,它们会替换base.twig中的内容。

据我所知,您一次只能扩展一个文件。您可以自定义和创建任意数量的布局,然后扩展它们。因此,您可能有一个基本布局,您可以为大多数页面扩展。但是,您可能需要另一个带侧边栏的布局,您可以在需要侧边栏的页面上进行扩展。您可以为站点的电子商务部分创建另一个布局等。重点是通过遵循DRY原则使您不必跨页面复制一堆代码。

我希望这是有道理的,如果没有,请告诉我,我将非常乐意为您提供帮助。