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擴展

為防止兼容性問題,未啟用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的首選方式。

發表回復

您的郵箱地址不會被公開。 必填項已用 * 標註