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

110 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 迁移 Theme.json 至新版指南
本文档记录了不同版本 `theme.json` 之间的变更内容及升级方式。旧版本将持续获得支持,但建议升级至新版以获得持续的功能更新。
## 从 v1 迁移至 v2
升级至 v2 版本可启用新功能,并对旧功能命名进行统一优化。
### 迁移步骤:
1.`version` 字段更新为 `2`
2. 检查并重命名已变更的属性(详见下表)
请参考[版本发布说明](https://make.wordpress.org/core/2022/01/08/updates-for-settings-styles-and-theme-json/)及[v1/v2版本参考文档](/docs/reference-guides/theme-json-reference/README.md)。
### 属性重命名对照表
| 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.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)(对应标识符为`normal`和`huge`),新增特大尺寸(Extra Large标识符为`x-large`)。当界面控件显示核心默认值时常规尺寸与超大尺寸将不再出现。但为确保现有内容正常显示其CSS类及CSS自定义属性仍会保留。
## 从 v2 迁移至 v3
升级至 v3 版本将对预设默认值进行统一性优化。
### 迁移步骤:
1.`version` 字段更新为 `3`
2. 根据下文说明配置变更的默认值
### 默认值变更
#### `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`