
Blogger 模板中 Widget 不显示,通常是因为自定义 <b:includable id='main'> 覆盖了默认渲染逻辑;移除或重写该 includable 并确保其调用 data:content 是解决问题的关键。
bloger 模板中 widget 不显示,通常是因为自定义 `
在 Blogger 模板开发中,<b:widget> 的渲染行为高度依赖于 <b:includable id='main'> —— 这是 Blogger 引擎查找并执行的主入口模板片段。如果你手动添加了空的或不完整的 <b:includable id='main'>(例如仅含 <h4>From #Main</h4>),Blogger 就会跳过默认的 widget 渲染流程,导致 <div class='main-logo no-items section'> 这类空容器被输出,而实际内容(如图片、标题等)完全不渲染。
✅ 正确做法是:要么彻底删除自定义的 <b:includable id='main'>,让 Blogger 使用内置默认逻辑;要么保留它,但必须显式调用 <data:content/> 或 <b:include name='content'/> 来注入实际内容。
例如,若需保留自定义结构,应改写为:
<b:includable id='main'>
<div class='header-logo-wrapper'>
<h2 class='logo-title'>My Blog</h2>
<data:content/> <!-- ✅ 关键:必须包含此项以渲染 widget 内容 -->
</div>
</b:includable>⚠️ 注意事项:
- Blogger 不会自动合并你写的 main 和 content includable;main 是唯一入口,content 只有被 main 显式调用时才生效;
- maxwidgets="1" 和 showaddelement="yes" 仅控制后台编辑界面行为,不影响前端渲染;
- 图片 widget(如 type='Image')的 displayUrl 等设置仅在 Blogger 后台配置时生效,硬编码在模板中无效——应通过 Blogger 后台「布局」→「添加小工具」上传图片,而非在 XML 中写死 URL;
- 修改模板后务必点击「保存」并刷新浏览器缓存(Ctrl+F5),避免因 CDN 或本地缓存误判问题未解决。
总结:Widget 不显示的根本原因,90% 源于 <b:includable id='main'> 缺失、为空或未调用 <data:content/>。删掉冗余的 main includable 是最快验证方式;进阶需求则需精准控制 main 的包裹结构,并始终确保内容委托机制完整。

















