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 headblock 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 原则,让您不必跨页面复制一堆代码。

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