logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

包含模板的一部分

02/10/2025, by Ivan

许多开发者更喜欢将页眉 / 页脚的代码保存在单独的文件中,并在 page.html.twig 中调用该文件。

过程

假设你在主题文件夹中为页眉创建了以下文件:

THEME_NAME/templates/includes/header.html.twig

现在你想在以下文件中包含它:

page.html.twig

推荐方法

Drupal 8 主题的正确方法是使用 Twig 命名空间来声明当前主题的 "templates" 目录。示例如下:

{% include '@THEME_NAME/includes/header.html.twig' %}

下面的示例来自 Drupal.org 上的一个实际主题,名为 Architect。
“@architect” 指的是工作主题 (architect) 的 /templates 目录。

{% include '@architect/includes/header.html.twig' %}

Twig 命名空间在 Drupal 8 中会在安装主题时自动创建,并指向主题的 /templates 目录。基本上,在 Twig 包含语句中写 “@theme_name”(如上所示),将会引用服务器上 “your_site.com/themes/theme_name/templates” 的位置。

不推荐的方法

一种可能(但不推荐)的方法是使用以下代码来包含该文件。

{# NOT recommended #}
{% include directory ~ '/templates/includes/header.html.twig' %}

上面的方式可能会工作,但在使用子主题时会导致服务器错误。

扩展命名空间功能

组件库模块 为 Drupal 8 中的 twig 模板提供了更灵活、更复杂的组织方式,它可以与 twig "embed" 一起使用。