2

我目前正在尝试将网站与 Drupal 8 集成。我的首页与其他页面略有不同,如果当前页面是首页以添加“div”,我需要检查 node.html.twig . 变量“is_front”在 page.html.twig 上运行良好,但在 node.html.twig 上似乎不可用。我该如何解决这个问题?

4

2 回答 2

5

您还可以使用预处理钩子添加此变量。以下代码将添加is_front变量,以便在html.html.twig模板中使用它:

// Adds the is_front variable to html.html.twig template.
function mytheme_preprocess_html(&$variables) {
  $variables['is_front'] = \Drupal::service('path.matcher')->isFrontPage();
}

然后在树枝模板中,您可以像这样检查变量:

{% if is_front %}
THIS IS THE FRONTPAGE
{% endif %}
于 2017-04-27T21:32:24.000 回答
1

如果您想在首页显示一个节点并且它应该看起来就像实际的节点页面,您可以为该节点创建一个新的显示,例如“在首页”。对于该显示,您创建一个新的节点模板(小心为 twig 文件使用正确的命名约定,否则它将不起作用)。然后你告诉首页使用“On Frontpage”显示来显示节点,这将使用不同的模板(包括你想要的 div)。

Twig 模板命名约定:https ://www.drupal.org/node/2354645

所以步骤:

  1. 为您的节点创建新的显示模式
  2. 为该特定显示模式创建一个新模板
  3. 告诉首页使用该显示器显示节点
于 2016-04-28T12:06:28.510 回答