【问题标题】:Timber / Wordpress - Nesting Blocks is not workingTimber / Wordpress - 嵌套块不起作用
【发布时间】:2018-03-16 03:54:03
【问题描述】:

我一直在关注文档、教程和一些 youtube 视频,但我永远无法让块嵌套和“扩展”工作。除此之外,Timber 似乎工作正常。

在视图文件夹中,我有这两个文件:

base.twig

test.twig

base.twig

{% block content %}
    ........
{% endblock %}

test.twig

{% extends "base.twig" %}

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

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

----编辑----

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

但这并没有解释如何进行多块嵌套...我可以将多个文件嵌套在同一个块内 .. 但是 如果您有两个单独的块在同一个twig文件? 处理多块的方法是什么?我找不到关于那个或任何案例的文档。

【问题讨论】:

  • 你调用Timber::render()的地方的PHP文件是什么样子的?
  • 它看起来确实像Timber::render( 'base.twig', $context );,我发现我必须渲染 test.twig 才能工作。但是我仍然不清楚如何在同一个树枝文件中操作多个块元素。我编辑了我的原始帖子。
  • 多块嵌套是什么意思?你看过这个吗? twig.symfony.com/doc/2.x/tags/extends.html它回答你的问题了吗?
  • 谢谢你的链接,我还没有看到它。这很有帮助,但我还不完全清楚。它声明“所以每次渲染只能调用一个扩展标签”。好的,但是在第一个代码示例中,同一树枝文件中同时存在 block headblock footer。所以我假设我可以有 2 个单独的树枝文件,这些文件为每个块扩展。但我想这是错误的,所以我只能有一个将扩展到这两个块元素的子树枝文件?事情就是这样处理的吗?

标签: wordpress twig timber


【解决方案1】:

我认为您可能对块和扩展的工作方式感到困惑......

如果您真的想看到这方面的好例子,请查看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 原则,让您不必跨页面复制一堆代码。

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

【讨论】:

  • 谢谢你的解释!是的,我只是还没有了解到每次渲染只能进行一次扩展。一个问题是在所有文档中,他们没有向您展示 php 文件的示例及其指向的位置,我认为如果他们清楚地说明这部分内容会有所帮助......但现在我明白我将能够思考我的工作流程以及我想如何构建我的项目。一点学习曲线就可以了。再次感谢您。
  • @RandymWebDev 很高兴,我真的认为,如果您查看木材入门主题中包含的代码,您将看到 php 文件如何调用/渲染各种 .twig 文件。他们在主题中为你做了很多“繁重的工作”,所以看看吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 2018-04-30
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多