如何在Drupal 8的block--system-branding-block模板中嵌入区域?
在Drupal 8中嵌入区域到区块模板作为子菜单
步骤1:确认目标区域的机器名
- 登录Drupal后台,进入「结构」→「区块布局」页面。
- 找到你要嵌入的区域,查看它的机器名(通常显示在区域标题下方,格式类似
header_sub、sidebar_auxiliary),记录该名称备用。
步骤2:修改block--system-branding-block.html.twig模板
- 找到主题目录下的该模板文件(如果主题中没有,可从核心模块复制到主题的
templates目录下)。 - 在模板中你希望展示子菜单的位置,插入区域渲染代码,将下方的
YOUR_REGION_MACHINE_NAME替换为实际的区域机器名:{# 嵌入目标区域作为子菜单 #} {% if page.YOUR_REGION_MACHINE_NAME %} <div class="sub-menu-wrapper"> {{ page.YOUR_REGION_MACHINE_NAME }} </div> {% endif %} - 若需要将区域内容整理为列表结构,可调整代码如下:
{% if page.YOUR_REGION_MACHINE_NAME %} <ul class="sub-menu"> {% for block in page.YOUR_REGION_MACHINE_NAME %} <li class="sub-menu-item">{{ block }}</li> {% endfor %} </ul> {% endif %}
步骤3:调整样式(按需操作)
- 如果渲染出的区块样式不符合子菜单视觉要求,在主题的CSS/SCSS文件中添加对应样式,示例:
.sub-menu { list-style: none; padding-left: 0; } .sub-menu-item { display: inline-block; margin-right: 15px; }
步骤4:清除Drupal缓存
- 进入后台「配置」→「性能」页面,点击「清除所有缓存」,确保模板修改生效。
内容的提问来源于stack exchange,提问作者Steve James
相关产品推荐
相关产品推荐

