从 PHP 5.2.0 起,默认情况下,PHP 本地 JSON 扩展已与 PHP 捆绑和编译。但是,还是有很多 PHP 安装不包括 JSON 。为了确保在所有受支持的 PHP 版本中都能获得与 JSON 相关的功能的一致体验,WordPress 核心汇总一直包括大量的变通方法、函数和 polyfill。
在 WordPress 3.2 中,WordPress 官方尝试删除与 JSON 相关的兼容性代码。但是发现默认情况下仍有相当数量的PHP发行版仍缺少 JSON 扩展,然后只能恢复了删除的代码以确保兼容性。
在 WordPress 5.2 中,支持的 PHP 最低版本从 5.2.6 提高到 5.6.20。自从上一次尝试鼓励使用 PHP 本机 JSON 扩展以来禁用此扩展的发行版数量已大大减少。
因此,要运行 WordPress 5.3 及更高版本,必须要安装 PHP 的 JSON 扩展。
为防止兼容性问题,未启用 PHP 本地 JSON 扩展的站点在尝试升级到 WordPress 5.3 时将看到错误消息。该更新将被取消并且该站点将保留在当前版本上。这是为了防止运行自定义 PHP 配置的服务器上的潜在兼容性问题。
以下是更改的摘要:
不推荐使用的
以下函数和类将保留在代码库中,但在使用时将触发不建议使用的警告
Services_JSON和Services_JSON_Error类和所有方法
wp-includes/class-json.php文件
_wp_json_prepare_data() (私有)函数
已移除的
以下函数和类已从代码库中完全删除
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 的首选方式。