如何检查当前页面是否是node.html.twig的首页?

时间:2016-04-28 09:49:41

标签: templates variables twig drupal-8 frontpage

我目前正在尝试将网站与Drupal 8集成。我的首页与其他页面略有不同,我需要检查node.html.twig,如果当前页面是添加a的首页“分区”。变量“is_front”在page.html.twig上工作正常但似乎在node.html.twig上不可用。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:3)

您还可以使用预处理挂钩添加此变量。以下代码将添加delete [] requires;变量,以便可以在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();
}

答案 1 :(得分:1)

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

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

所以步骤:

  1. 为您的节点创建新的显示模式
  2. 为该特定显示模式创建新模板
  3. 告诉首页使用该显示器显示节点