开发者新动态(2023年3月)
欢迎阅读本系列月度文章的第二期。如果您是基于 WordPress 平台进行开发的开发者,那么这些信息正是为您准备的。我们的目标是帮助您更轻松地跟上快节奏的开发周期,将必读内容清单浓缩成一个易于消化的来源。
根据读者反馈,2023年2月刊取得了成功。如果您错过了,可以在闲暇时浏览一下——当然,是在您阅读完这最新一期之后!
WordPress 6.2 是 2023 年的第一个主要版本,预计于 3 月 28 日发布。与其他主要版本一样,Make Core 博客上发布了一份新的《现场指南》。如果真有一份必读内容,那就是这份文档:它是一站式资源,让您了解 WordPress 6.2 中所有与开发者相关的最新功能。
重点内容
过去一个月,Gutenberg 插件和 WordPress 核心中新增了几项功能。此时,您应该在本地环境中至少测试 WordPress 6.2 候选版本 1 或 Gutenberg 15.2。
WordPress 6.2 产品演示
3月2日,发布小组成员 Anne McCarthy 和 Rich Tabor 主持了一场 WordPress 6.2 现场产品演示。这是首次由 WordPress 社区成员 Nathan Wrigley 主持的产品演示。
演示重点介绍了即将到来的增强功能和新特性,从重新设计的站点编辑器界面开始。如果您尚未在 Beta 和候选版本周期中试用 WordPress 6.2,该演示将在您深入了解新代码之前提供一个扎实的介绍。
社区主题倡议
2022 年,来自 8 个国家的 19 位设计师共同为 2023 主题构建了 38 种样式变体。在这些提交中,有 10 个进入了最终版本。它的成功清楚地展示了设计社区如何在 WordPress 之上协作构建主题。
继此成功之后,社区主题倡议应运而生。3月7日,超过 20 人参加了首次 Hallway Hangout,讨论在 WordPress.org 用户名下构建区块主题。该项目尚处于早期阶段,任何想要创建区块主题或了解更多信息的人都可以参与。请访问后续文章获取更多信息,或观看 WordPress.tv 上的会议录像。
文章特色图片区块支持宽高比
文章特色图片区块现在支持设置宽高比。当您不想明确定义宽度或高度时,这使您能更精确地控制模板输出图像的方式。在构建希望特色图片输出一致的网格布局时,这可能特别有用。
此更改还为 WordPress 中的各种 KSES 函数引入了aspect-ratio CSS 支持。
最小高度支持
最小高度尺寸支持现已到来。现在您可以将其添加到自定义区块中。目前,如果在 theme.json 中启用,核心的文章内容区块和群组区块(及其堆叠和行变体)默认提供支持。
这项新的区块支持为您提供了更多执行自定义设计的方式,特别是与垂直布局工具和堆叠区块结合使用时。更多信息,请阅读关于此功能的开发说明。
重大变更与弃用
WordPress 6.2 将移除几个已弃用的 API 和组件,包括以下内容:
RichText组件的formatting属性- 非字符串的区块描述
- 实验性的
@wordpress/edit-navigation包
插件与工具
文件系统 API 支持移动目录
WordPress 6.2 将引入一个 move_dir() 函数作为其文件系统 API 的一部分,用于移动目录。自 2.5 版本以来,您可以通过 copy_dir() 复制目录,但必须手动删除原始目录。新函数允许您定义当前目录位置、新位置以及是否覆盖目标位置。
样式书排除不可插入的区块
样式书允许您通过站点编辑器修改全局区块样式。在该功能的早期迭代中,它显示了所有第三方区块以及 WordPress 核心中的区块。一项最近的更改排除了不允许插入的区块。通过其开发说明了解更多关于样式书预览的信息。
导航器组件更新
Navigator 组件现在支持两项附加功能:
- 它提供了一种通过
goToParent()函数和NavigatorToParentButton组件导航到父屏幕的方法。 - 它可以匹配命名参数,例如
/product/:productId。
这两项功能都假设 NavigatorScreen 实例被分配了具有层次结构且遵循类似 URL 方案(路径段由正斜杠分隔)的路径。
钩子
在需要对 override_load_textdomain 钩子运行过滤器的场景中,WordPress 6.2 将引入 $locale 参数。这确保您始终能访问正确的区域设置。以前,您可能依赖 determine_locale() 函数,但它可能不会返回相同的值。
错误修复
一个最近的补丁修复了在某些情况下使用 wp_list_authors() 函数时出现的 PHP 致命错误。当使用显示每位作者文章数量的 optioncount 参数,并且结果查询包含一个没有任何文章的用户时,会出现此问题。此更改已捆绑在 WordPress 6.2 中,但工单仍然开放,以便可能向后移植到 WordPress 6.1 分支。
主题
默认主题捆绑网页字体
几个默认的 WordPress 主题已更新,将 Google Fonts 捆绑到各自的主题文件夹中:
- Twenty Twelve
- Twenty Thirteen
- Twenty Fourteen
- Twenty Fifteen
- Twenty Sixteen
- Twenty Seventeen
这些都是不支持 theme.json 的经典主题。因此,它们不使用主题开发者可用的较新字体 API。但是,当您构建纯经典主题并希望提供对隐私友好的网页字体时,它们确实为您提供了一个坚实的模型来效仿。开发说明详细介绍了这些更改。
模板类型的起始模式
当您从站点编辑器创建新模板时,现在会出现一个模态窗口。这些起始模式目前仅限于默认回退模板或完全空的状态。最终,此功能将与模式 API 的模板类型支持相结合,让您能为特定模板呈现自定义模式。
主题可以控制文章摘要区块长度
现在,您可以控制文章摘要区块使用的最大单词数。一个新的 excerptLength 属性允许您按查询更改最大值,并解决了一个长期存在的问题,即主题开发者只能全局过滤 excerpt_length 钩子,或者为基于上下文的定制拼凑解决方案。
按钮区块现在被视为“内容”区块
按钮区块现在是一个“内容”区块。实际上,此更改允许您使用锁定 API 来为用户策划编辑器体验。例如,您可以将区块的 templateLock 属性设置为 contentOnly,这会保留其设计但允许用户编辑内容。
区块支持更新
在过去的一个月里,几个核心区块获得了对附加设计工具的支持:
这些更新应该会使自定义默认区块的输出变得容易得多。
新增和更新的默认阴影预设
Gutenberg 14.9 引入了可用于设计的盒阴影预设。有一份开发说明和一份开发者博客教程,将在 WordPress 6.2 发布时指导您使用该功能。
除了自定义预设,该功能最初还提供了两个默认阴影:自然和锐利。一项最近的更改更新了这两者的代码,并引入了新的深色、轮廓和清晰预设。如果您一直在使用自然和锐利预设,您需要测试您的设计,看看这些更改在您的主题中效果如何。
错误修复
一个缺陷最近被修复,该缺陷导致具有数字目录名的活动主题未被识别为活动主题。数字主题名称长期以来一直被允许,因此此补丁仅解决了目录本身的问题。
加载 wp-block-library-theme 样式背后的条件逻辑在上个月打了补丁。在某些情况下,例如当主题不包含编辑器样式表时,主观的区块库主题样式被错误地加入队列。这有时会导致编辑器和前端之间的不一致。
在 WordPress 6.1 中,按钮元素样式被移到了 theme.json。然而,此更改没有考虑到为没有 theme.json 的主题在文件区块中设置按钮元素的样式。一个针对 6.2 的补丁将 CSS 重新引入到经典样式表中。
关于在 rss_widget_feed_link 上添加过滤器的文档已更新,建议返回字符串值。核心的 2021 主题现在使用 __return_empty_string() 函数作为该钩子的过滤器。基于此代码构建自己主题的开发者应更新其主题。这是一个非破坏性更改。
在某些情况下,例如在已弃用的图库区块版本中,布局类被添加到内部区块中。最近的补丁确保这些类仅在区块是容器时才应用于内部包装器。
活动与资源
开发者时间会议
开发者时间,一系列与社区成员的问答讨论,已全面恢复。当前的讨论集中在将短代码和小工具插件迁移到区块上。
2月,为欧洲、中东和非洲地区以及美洲地区举行了前两场活动。第三场活动,专门针对欧洲、中东和非洲以及亚太地区,将于3月27日举行。
学习 WordPress
Jonathan Bossenger 发布了一个新的视频教程,介绍安全开发插件。它涵盖了您应该熟悉的五个关键领域:
- 清理输入
- 数据验证
- 转义输出
- 防止不受信任的请求
- 检查用户能力
开发您的第一个低代码区块主题课程的所有模块现已可用。它将引导您了解构建简单区块主题的基础知识。
开发者博客文章
在过去的一个月里,贡献者在开发者博客上为 WordPress 开发社区发布了六篇新文章:
我们的目标是使其成为扩展者持续学习的高质量资源。它也开放贡献,因此请分享您的知识并回馈社区。