Drupal 10 中调用自定义 HTML 区块需先在/admin/structure/block创建并保存,再通过区块布局界面放置到目标区域(如Content或Sidebar),并确保文本格式设为“完整 HTML”以避免标签被过滤;纯 Twig 不支持直接调用,推荐通过预处理函数加载渲染数组。

在 Drupal 10 中调用自定义 HTML 区块,核心是通过“区块布局”界面手动放置,或在模板/代码中动态渲染。它不是靠 PHP 函数直接“调用”,而是基于 Drupal 的区块系统和渲染流程来实现。关键在于:先创建区块,再把它放到页面上合适的位置。
创建自定义 HTML 区块
这是第一步,也是最常用的方式:
- 进入/admin/structure/block → 点击右上角“+ 添加自定义区块”
- 填写区块标题(可选,不显示也可留空)
- 在区块正文区域粘贴你的 HTML 代码(支持内联样式、class、div 结构等)
- 选择文本格式:务必选“完整 HTML”或你已启用 HTML 标签的格式(如“Filtered HTML”需提前在/admin/config/content/formats中授权相关标签)
- 保存后,该区块即生成,但此时还不会自动显示——需要下一步“放置”
在页面上放置该区块
创建完只是注册了区块,真正让它出现要靠区块布局:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 回到/admin/structure/block,点击“放置区块”按钮(或对应区域的“+”号)
- 在弹出列表中找到你刚创建的区块(名称默认为标题,或显示为“Custom block: [标题]”)
- 拖拽到目标区域(如“Content”、“Sidebar first”、“Header”等),或点击“放置”
- 设置可见性条件(可选):比如只在某类内容页、某路径、某用户角色下显示
- 保存配置,刷新前端即可看到 HTML 区块生效
在 Twig 模板中硬编码渲染(进阶)
若需在特定模板(如 node--article.html.twig)里固定插入该区块,可用 Drupal 的block_load() + 渲染数组方式:
- 先获取区块 ID:在/admin/structure/block中,鼠标悬停该区块的“配置”链接,地址栏 URL 末尾类似
block/123,其中123就是区块 ID - 在目标 Twig 模板中添加(需配合预处理函数,纯 Twig 不支持 PHP 调用):
更稳妥做法是在主题的.theme文件中写预处理函数,加载并传入渲染数组;或者使用Block Field模块将区块作为字段嵌入内容类型 - 不推荐直接在 Twig 中用
{{ drupal_block('block_content:123') }}—— 这是旧版或非标准写法,Drupal 10 原生不提供该 Twig 函数
注意事项
几个容易出错的点要留意:
-
HTML 被过滤:如果粘贴的 HTML 消失或被删减,一定是文本格式没选对,或该格式未允许
div、style、class等标签 -
JS/CSS 不生效:自定义 HTML 区块本身不自动加载 JS 或外部 CSS,需把脚本内联写在 HTML 里(
<script>...</script>),或提前在主题中引入对应资源 - 缓存影响预览:修改后没立即看到效果?清一下缓存:/admin/config/development/performance → “清除所有缓存”
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










