Timber / Wordpress - 嵌套块不起作用
Timber / Wordpress - Nesting Blocks is not working
我一直在关注文档、教程和一些 youtube 视频,但我永远无法使块嵌套和 "Extends" 正常工作。除此之外,Timber 似乎工作正常。
在 views 文件夹中我有这两个文件:
base.twig
test.twig
在base.twig
{% block content %}
........
{% endblock %}
在test.twig
{% extends "base.twig" %}
{% block content %}
This is a test
{% endblock %}
根据我一直关注的内容,代码是正确的,我应该得到 "This is a test" 的输出,对吗?但是我仍然得到“......”。
----编辑----
好的,我在 php 文件中找到了一些问题,我正在渲染 base.twig。这显然没有做任何关联 test.twig。因此,当我渲染 test.twig 时,我得到了我正在寻找的行为。
然而,这并没有解释如何进行多块嵌套...我可以将多个文件嵌套在同一个块深处..但是如果你在同一个树枝文件中有两个单独的块? 处理多个块的方法是什么?我找不到有关该文档或任何案例的文档。
我认为您可能对 blocks 和 extend 的工作方式感到困惑...
如果您真的想看到这方面的良好示例,请查看 Timber Starter theme 并浏览他们提供的开箱即用的各种 .twig 文件。如果您正在使用 Timber 构建站点,我强烈建议您使用此主题开始。
关于您的最新评论(我没有足够的代表发表评论,否则我会)该示例在 base.twig
内有一个 block head
和 block footer
。因此,当您在新的 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 原则,让您不必跨页面复制一堆代码。
我希望这是有道理的,如果没有,请告诉我,我将非常乐意为您提供帮助。
我一直在关注文档、教程和一些 youtube 视频,但我永远无法使块嵌套和 "Extends" 正常工作。除此之外,Timber 似乎工作正常。
在 views 文件夹中我有这两个文件:
base.twig
test.twig
在base.twig
{% block content %}
........
{% endblock %}
在test.twig
{% extends "base.twig" %}
{% block content %}
This is a test
{% endblock %}
根据我一直关注的内容,代码是正确的,我应该得到 "This is a test" 的输出,对吗?但是我仍然得到“......”。
----编辑----
好的,我在 php 文件中找到了一些问题,我正在渲染 base.twig。这显然没有做任何关联 test.twig。因此,当我渲染 test.twig 时,我得到了我正在寻找的行为。
然而,这并没有解释如何进行多块嵌套...我可以将多个文件嵌套在同一个块深处..但是如果你在同一个树枝文件中有两个单独的块? 处理多个块的方法是什么?我找不到有关该文档或任何案例的文档。
我认为您可能对 blocks 和 extend 的工作方式感到困惑...
如果您真的想看到这方面的良好示例,请查看 Timber Starter theme 并浏览他们提供的开箱即用的各种 .twig 文件。如果您正在使用 Timber 构建站点,我强烈建议您使用此主题开始。
关于您的最新评论(我没有足够的代表发表评论,否则我会)该示例在 base.twig
内有一个 block head
和 block footer
。因此,当您在新的 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 原则,让您不必跨页面复制一堆代码。
我希望这是有道理的,如果没有,请告诉我,我将非常乐意为您提供帮助。