gutenbergdocs/docs/reference-guides/theme-json-reference/theme-json-migrations.md
2025-10-22 01:40:18 +08:00

5.2 KiB
Raw Permalink Blame History

迁移 Theme.json 至新版指南

本文档记录了不同版本 theme.json 之间的变更内容及升级方式。旧版本将持续获得支持,但建议升级至新版以获得持续的功能更新。

从 v1 迁移至 v2

升级至 v2 版本可启用新功能,并对旧功能命名进行统一优化。

迁移步骤:

  1. version 字段更新为 2
  2. 检查并重命名已变更的属性(详见下表)

请参考版本发布说明v1/v2版本参考文档

属性重命名对照表

v1 版本 v2 版本
settings.border.customRadius settings.border.radius
settings.spacing.customMargin settings.spacing.margin
settings.spacing.customPadding settings.spacing.padding
settings.typography.customLineHeight settings.typography.lineHeight

新增属性

新增顶层属性:customTemplatestemplateParts

配置项(sections)新增:

  • settings.appearanceTools
  • settings.border.color
  • settings.border.style
  • settings.border.width
  • settings.color.background
  • settings.color.defaultGradients
  • settings.color.defaultPalette
  • settings.color.text
  • settings.spacing.blockGap
  • settings.typography.fontFamilies
  • settings.typography.fontStyle
  • settings.typography.fontWeight
  • settings.typography.letterSpacing
  • settings.typography.textColumns
  • settings.typography.textDecoration
  • settings.typography.textTransform

样式项(styles)新增:

  • styles.border.color
  • styles.border.style
  • styles.border.width
  • styles.filter.duotone
  • styles.spacing.blockGap
  • styles.typography.fontFamily
  • styles.typography.fontStyle
  • styles.typography.fontWeight
  • styles.typography.letterSpacing
  • styles.typography.textColumns
  • styles.typography.textDecoration
  • styles.typography.textTransform

属性值变更

核心默认字体尺寸(settings.typography.fontSizes)已更新:移除了常规尺寸(Normal)与超大尺寸(Huge)(对应标识符为normalhuge),新增特大尺寸(Extra Large标识符为x-large)。当界面控件显示核心默认值时常规尺寸与超大尺寸将不再出现。但为确保现有内容正常显示其CSS类及CSS自定义属性仍会保留。

从 v2 迁移至 v3

升级至 v3 版本将对预设默认值进行统一性优化。

迁移步骤:

  1. version 字段更新为 3
  2. 根据下文说明配置变更的默认值

默认值变更

settings.typography.defaultFontSizes

在 theme.json v2 中,默认字体尺寸仅在主题未定义尺寸时显示。若主题提供的字体尺寸与默认标识符相同,则会始终覆盖默认值。

默认字体尺寸标识符包括:smallmediumlargex-largexx-large

新增的 defaultFontSizes 选项可控制默认字体尺寸的显示与覆盖行为:

  • 设为 true 时显示默认字体尺寸并禁止主题覆盖
  • 设为 false 时隐藏默认字体尺寸并允许主题使用默认标识符

升级至 v3 后该值默认为 true,此举是为了与 settings.color.defaultPalette 等其他默认选项保持一致性,但与 v2 行为存在差异。

若需在 v3 中保持 v2 行为:

  • 未定义任何 fontSizes 时,可保留 defaultFontSizes 或设为 true
  • 已定义部分 fontSizes 时,需将 defaultFontSizes 设为 false

settings.spacing.defaultSpacingSizes

在 theme.json v2 中,存在两种设置主题级间距尺寸的方式:settings.spacing.spacingSizessettings.spacing.spacingScale。若同时设置两者,仅会采用 spacingSizes 的数值。设置任一选项都会完全替换WordPress提供的默认间距尺寸。

WordPress提供的默认间距尺寸标识符包括20304050607080

新增的 defaultSpacingSizes 选项可控制默认间距尺寸的显示与覆盖行为:

  • 设为 true 时显示默认间距尺寸并禁止主题覆盖
  • 设为 false 时隐藏默认间距尺寸并允许主题使用默认标识符

升级至 v3 后该值默认为 true,此举是为了与 settings.color.defaultPalette 等其他默认选项保持一致性,但与 v2 行为存在差异。

此外在 v3 中可同时设置 spacingSizesspacingScale。当 spacingSizes 中定义的预设标识符与 spacingScale 生成的预设相同时,前者将覆盖后者。

若需在 v3 中保持 v2 行为:

  • 未定义任何 spacingSizes 预设或 spacingScale 配置时,可保留 defaultSpacingSizes 或设为 true
  • 若曾通过设置 spacingScale{ "steps": 0 } 禁用默认间距尺寸,需移除 spacingScale 配置并将 defaultSpacingSizes 设为 false
  • 若仅通过 spacingScalespacingSizes 之一定义预设,需将 defaultSpacingSizes 设为 false
  • 若曾同时设置 spacingScalespacingSizes,需移除 spacingSizes 配置并将 defaultSpacingSizes 设为 false