# 区块类型的更新传播 本文旨在为需要更新内容的用户提供指导,无论是更新主题模板、模式还是整个网站的区块。由于每种内容类型允许或禁止特定类型的同步,在创建前了解可能性的范围对简化未来维护至关重要。 ## 更新管理建议 ### 预先明确需要更新的内容 从宏观角度来看,需认识到并非所有内容都能在全站范围内更新,且创建方式会极大影响可操作性。因此,在创建前花时间确定需要更新的内容并将其置于合适的格式中至关重要。这将显著影响未来的维护效率。 ### 拥抱区块级主题设计 区块主题设计需要从传统设计思维转变——不再局限于设计大版块并通过更新控制。虽然整体设计视角在创建自定义主题项目时仍然重要,但区块要求设计师以更原子化的方式进行设计。这意味着从区块本身出发,通常通过 theme.json 自定义实现。**核心目标是让每个独立“原子”(即区块)可自由移动、编辑、删除和重组,而不会破坏整体设计。** 越倾向于区块级设计,就越不需要在全站范围内向模式和模板等元素传播更新。只要原子化部件到位,其布局不应成为问题。 ## 内容类型(及其正确更新方式) ### 区块 区块更新的管理方式取决于区块本身的性质。若区块依赖外部数据,建议从一开始就通过 `render_callback` 函数将其设为动态区块,这样能提供更多控制权。若区块结构预计会随时间变化,则推荐从使用 `save()` 方法定义默认输出的静态区块开始。后续可逐步采用混合方案,加入能使用 `save` 输出作为备选的 `render_callback` 以处理替代输出。需注意,这种灵活性和控制力是以渲染时的额外处理为代价的。另一种方案是使用依赖[区块弃用机制](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-deprecation/)管理更新的静态区块,但这需要手动更新现有区块。根据需求和使用习惯,两种方案皆可适用。**若要快速开始创建区块,[可使用 Create Block 工具](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-create-block/)。** ### 模式 **对于后续需要更新的内容,请勿使用模式,应改用可重用区块或模板部件。** 模式插入站点后无法更新。可以将其理解为示例/样板/初始内容。虽然插入器中展示的模式会随时间演进,但这些变更不会自动应用到当前使用的模式实例上。一旦插入,模式就会与原始模式完全脱离(这点与可重用区块或模板部件区块不同)。 如需为自定义样式的模式设置解决方案,可考虑在包装区块中添加类名。例如以下代码为群组区块添加 themeslug-special 类: ```