WordPress 5.3 +将要求PHP安装JSON扩展

WordPress 5.3 +将要求PHP安装JSON扩展

从PHP 5.2.0(2006)起,默认情况下,PHP本地JSON扩展已与PHP捆绑和编译。但是,还是有很多PHP安装不包括 JSON 。为了确保在所有受支持的PHP版本中都能获得与JSON相关的功能的一致体验,WordPress 核心汇总一直包括大量的变通方法、函数和polyfill。

在2011年(WordPress 3.2)中,WordPress官方 尝试删除与JSON相关的兼容性代码。但是,发现默认情况下仍有相当数量的PHP发行版仍缺少JSON扩展,然后只能恢复了删除的代码以确保兼容性。

在WordPress 5.2中,支持的PHP最低版本从5.2.6提高到5.6.20。自从上一次尝试鼓励使用PHP本机JSON扩展以来的8年中,禁用此扩展的发行版数量已大大减少。

因此,要运行WordPress 5.3及更高版本,必须要安装PHP的JSON扩展

WordPress 5.3 +将要求PHP安装JSON扩展

为防止兼容性问题,未启用PHP本地JSON扩展的站点在尝试升级到WordPress 5.3时将看到错误消息。该更新将被取消,并且该站点将保留在当前版本上(请参阅[46455])。这是为了防止运行自定义PHP配置的服务器上的潜在兼容性问题。

以下是更改的摘要。

不推荐使用

以下函数和类将保留在代码库中,但在使用时将触发不建议使用的警告(请参阅[46205]):

  • Services_JSONServices_JSON_Error类和所有方法
  • wp-includes/class-json.php文件
  • _wp_json_prepare_data() (私有)函数

已移除

以下函数和类已从代码库中完全删除(请参见[46208]更改集):

  • json_encode() 函数
  • json_decode()  函数
  • _json_decode_object_helper()  函数
  • json_last_error_msg()  函数
  • JsonSerializable 界面
  • $wp_json 全局变量
  • JSON_PRETTY_PRINT 常量
  • JSON_ERROR_NONE  常量

不变的

wp_json_encode()函数将保留,目前不打算弃用。此函数包括对JSON编码数据的额外完整性检查,并且仍作为将数据编码为JSON的首选方式。