logo

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

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

演示 EBT 模块 下载 EBT 模块

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

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

演示 EPT 模块 滚动

滚动

在主题中添加区域

03/10/2025, by Ivan

在主题中添加区域需要:

  • THEMENAME.info.yml 文件中添加区域的元数据。
  • 编辑 page.html.twig 文件并输出新的区域。

注意:如果你在主题中声明了任何区域(哪怕只有一个),那么默认区域将不再适用,你需要自己声明所有希望使用的区域。

任何原来在已不存在区域中的区块(因为你未定义它们)都会被禁用——特别是当你编辑 THEMENAME.info.yml 并通过 drush cr 重建缓存时,你会看到类似这样的提示:

区块 themename_breadcrumbs 被分配到无效区域 breadcrumb,已被禁用。

如果你访问 /admin/structure/block,所有被禁用的区块会显示在最上方,并带有 (已禁用) 标记。你可以通过拖动或使用“区域”下拉框重新分配它们,或者删除不再需要的区块。

请确保保留 page_toppage_bottom 区域。这是“隐藏”的区域,用于页面顶部和底部的标记,例如分析代码或管理员工具栏。你无需在 THEMENAME.info.yml 文件中列出它们,只要不要在 html.html.twig 模板中删除即可。模块可能依赖它们的存在。

在 info 文件中添加区域

首先在 THEMENAME.info.yml 文件中声明任何新的区域。区域通过 regions 键声明,例如:

regions:
  header: 'Header'
  content: 'Content'
  footer: 'Footer'

区域键必须是字母数字组合,可以包含下划线 (_) 并且必须以字母开头。键是机器名(用于代码中),值是管理员界面中显示的可读名称。

在模板中添加区域

要让区域显示其中放置的内容,你需要在 page.html.twig 文件中添加这些新区域。区域会作为 Twig 变量提供,其名称与 THEMENAME.info.yml 文件中使用的键相对应,并以 page. 前缀。

例如:

header: 'Header'

...会变成:

{{ page.header }}

它们和其他 Twig 变量一样,可以包含在任何适合的标记中。

(默认隐藏区域的语法不同,见下文。)

默认区域

参见 page.html.twig 文档 以获取默认区域列表。

  • page.header
  • page.primary_menu
  • page.secondary_menu
  • page.highlighted
  • page.help(动态帮助文本,主要用于管理页面)
  • page.content(当前页面的主要内容)
  • page.sidebar_first
  • page.sidebar_second
  • page.footer
  • page.breadcrumb

如果你的主题没有声明任何区域,Drupal 会采用这一默认集合。

这些区域对应于默认文件 core/modules/system/templates/page.html.twig 的预期结构,同时还有两个隐藏区域 page_toppage_bottom——如果你覆盖默认值,不需要声明它们,但必须在 html.html.twig 模板中保留 {{ page_top }}{{ page_bottom }} Twig 变量。