5.2 KiB
迁移 Theme.json 至新版指南
本文档记录了不同版本 theme.json 之间的变更内容及升级方式。旧版本将持续获得支持,但建议升级至新版以获得持续的功能更新。
从 v1 迁移至 v2
升级至 v2 版本可启用新功能,并对旧功能命名进行统一优化。
迁移步骤:
- 将
version字段更新为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 |
新增属性
新增顶层属性:customTemplates、templateParts
配置项(sections)新增:
settings.appearanceToolssettings.border.colorsettings.border.stylesettings.border.widthsettings.color.backgroundsettings.color.defaultGradientssettings.color.defaultPalettesettings.color.textsettings.spacing.blockGapsettings.typography.fontFamiliessettings.typography.fontStylesettings.typography.fontWeightsettings.typography.letterSpacingsettings.typography.textColumnssettings.typography.textDecorationsettings.typography.textTransform
样式项(styles)新增:
styles.border.colorstyles.border.stylestyles.border.widthstyles.filter.duotonestyles.spacing.blockGapstyles.typography.fontFamilystyles.typography.fontStylestyles.typography.fontWeightstyles.typography.letterSpacingstyles.typography.textColumnsstyles.typography.textDecorationstyles.typography.textTransform
属性值变更
核心默认字体尺寸(settings.typography.fontSizes)已更新:移除了常规尺寸(Normal)与超大尺寸(Huge)(对应标识符为normal和huge),新增特大尺寸(Extra Large,标识符为x-large)。当界面控件显示核心默认值时,常规尺寸与超大尺寸将不再出现。但为确保现有内容正常显示,其CSS类及CSS自定义属性仍会保留。
从 v2 迁移至 v3
升级至 v3 版本将对预设默认值进行统一性优化。
迁移步骤:
- 将
version字段更新为3 - 根据下文说明配置变更的默认值
默认值变更
settings.typography.defaultFontSizes
在 theme.json v2 中,默认字体尺寸仅在主题未定义尺寸时显示。若主题提供的字体尺寸与默认标识符相同,则会始终覆盖默认值。
默认字体尺寸标识符包括:small、medium、large、x-large、xx-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.spacingSizes 与 settings.spacing.spacingScale。若同时设置两者,仅会采用 spacingSizes 的数值。设置任一选项都会完全替换WordPress提供的默认间距尺寸。
WordPress提供的默认间距尺寸标识符包括:20、30、40、50、60、70、80
新增的 defaultSpacingSizes 选项可控制默认间距尺寸的显示与覆盖行为:
- 设为
true时显示默认间距尺寸并禁止主题覆盖 - 设为
false时隐藏默认间距尺寸并允许主题使用默认标识符
升级至 v3 后该值默认为 true,此举是为了与 settings.color.defaultPalette 等其他默认选项保持一致性,但与 v2 行为存在差异。
此外在 v3 中可同时设置 spacingSizes 与 spacingScale。当 spacingSizes 中定义的预设标识符与 spacingScale 生成的预设相同时,前者将覆盖后者。
若需在 v3 中保持 v2 行为:
- 未定义任何
spacingSizes预设或spacingScale配置时,可保留defaultSpacingSizes或设为true - 若曾通过设置
spacingScale为{ "steps": 0 }禁用默认间距尺寸,需移除spacingScale配置并将defaultSpacingSizes设为false - 若仅通过
spacingScale或spacingSizes之一定义预设,需将defaultSpacingSizes设为false - 若曾同时设置
spacingScale与spacingSizes,需移除spacingSizes配置并将defaultSpacingSizes设为false