You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal中Twig模板命名规范错误导致区块与区域无法渲染求助

Drupal自定义区块与区域Twig模板正确命名规范及问题修正

一、自定义区块模板(核心问题)

你的自定义区块类型机器名为eyebrow_text_and_heading,Drupal中自定义区块(Block Content实体)的模板必须包含block-content--前缀,正确命名应为:

block--block-content--eyebrow-text-and-heading.html.twig

你之前的文件名block--eyebrow-text-and-heading.html.twig缺少block-content--,导致Drupal无法将该模板关联到你的自定义区块类型。

模板内容可保留,确认字段名正确即可:

{% if content %}
  <h5 class="eyebrow">{{ content.field_eyebrow_text }}</h5>
  <h2 class="eyebrow-heading">{{ content.field_heading }}</h2>
{% endif %}

二、区域模板

区域机器名为light_blue,你的模板名region--light-blue.html.twig是正确的,但模板内容存在两处错误:

  1. 开头缺少{%标记,变量声明语法错误
  2. container-fuid是拼写错误,应为container-fluid

修正后的区域模板代码:

{% set classes = [
  'region',
  'region-' ~ region|clean_class,
] %}
{% if content %}
  <div {{ attributes.addClass(classes) }}>
    <div class="container-fluid">
      <div class="container">
        {{ content }}
      </div>
    </div>
  </div>
{% endif %}

三、字段模板

你当前的field--block-content--light-blue.html.twig命名完全错误,light-blue是区域名,和字段模板无关。如果需要针对该自定义区块的字段定制模板,正确的命名格式有两种:

  • 针对该区块类型下的所有字段:
    field--block-content--eyebrow-text-and-heading.html.twig
    
  • 针对单个字段(比如field_eyebrow_text):
    field--block-content--eyebrow-text-and-heading--field-eyebrow-text.html.twig
    

四、关键注意事项

  • 模板文件直接放在主题的templates目录下即可,无需创建eyebrow-text-and-heading子文件夹,Drupal会自动扫描识别。
  • 修改模板后必须清除Drupal缓存,否则系统不会加载新的模板文件。
  • 开启Twig调试(在settings.php中设置$settings['twig_debug'] = TRUE;),可以在页面源码中查看当前使用的模板名称及所有候选模板,便于排查匹配问题。

内容的提问来源于stack exchange,提问作者Jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:11:12