首頁 CMS教程 &#&按 WordPress JSON 處理相關函數大全

WordPress JSON 處理相關函數大全

Sep 20, 2019 am 11:17 AM
wordpress

JSON處理是WordPress開發中的經常需要處理的一項工作,為此WordPress 定義了一堆JSON處理的函數,下面由WordPress教程專欄給大家做一下統一的介紹。

WordPress JSON 處理相關函數大全

wp_json_encode

#編碼成 JSON,並且進行一些完整性檢查。

wp_json_encode( $data, $options = 0, $depth = 512 )
登入後複製

簡單說下 WordPress 引進這個函數的原因:

 

首先不同 PHP 版本 json_encode 函數支援不同的參數。 PHP 5.3 之前只支援 一個參數 $data,PHP 5.3 引進了 $options 參數,PHP 5.5 又引進了 $depth 參數。所以 WordPress 適配不同版本的 PHP,wp_json_encode 都支援三個參數,相容於不同版本的 PHP。

在json_encode 之前,wp_json_encode 使用函數_wp_json_prepare_data 對資料進行清理,如果boolean,integer,double,string,NULL 這些類型,直接返回,如果數組,繼續使用_wp_json_prepare_data 函數對數組中的每個元素進行清理,如果是對象,如果該對象的class 實現了JsonSerializable 接口,則返回$data = $data->jsonSerialize(),否則,繼續使用_wp_json_prepare_data 對對像中的每個屬性進行清理。

然後使用 json_encode 進行編碼,如果不成功,則使用 _wp_json_sanity_check 對資料進行完整性處理,最後再使用 json_encode 進行編碼。 _wp_json_sanity_check 主要使用函數 _wp_json_convert_string 對資料進行深度 UTF-8 檢測和轉換。

所以建議使用 wp_json_encode 對變數進行 JSON 編碼,它的可靠性更高。

wpjam_json_encode

wp_json_encode( $data, $options = JSON_UNESCAPED_UNICODE, $depth = 512 )
登入後複製

PHP5.4 JSON 新增了一個選項:JSON_UNESCAPED_UNICODE,故名思議:不要編碼成 Unicode,讓中文更可讀。

所以我們寫了一個wpjam_json_encode 函數,相較於wp_json_encode,就是將$options 參數預設值設為JSON_UNESCAPED_UNICODE,這樣直接使用wpjam_json_encode($data),中文。

只要你安裝 WPJAM Basic 插件,你的 WordPress 就會有這個函數。

wp_send_json

直接傳送 JSON 資料。

wp_send_json( $response, $status_code = null )
登入後複製

他先輸出 application/json 的 Content-Type 頭,如果 $status_code 不為空,則輸出 $status_code 的狀態碼。

然後呼叫 wp_json_encode 對資料進行編碼。

wpjam_send_json

wpjam_send_json( $response, $status_code = null )
登入後複製

同樣為了能夠JSON 編碼之後,中文更可讀,我們也寫了wpjam_send_json 函數,它和wp_send_json 幾乎一致,只是調用對資料進行編碼的函數是wpjam_json_encode。

另外如果傳入的資料是 WP_Error 的實例,那麼 wpjam_send_json 直接輸出 errcode 和 errmsg JSON。如果沒有設定 errcode,則 wpjam_send_json 自動加上 errcode=>0

安裝 WPJAM Basic 插件,你的 WordPress 就會有這個函數。

wp_send_json_success 和wp_send_json_error

WordPress 也提供wp_send_json_success 和wp_send_json_error 兩個函數:##rrrereee_ccoo,然後把輸出為#json_cc資料$data 放到data 裡面輸出。 wp_send_json_error 則會判斷 $data 是否為 WP_Error 實例,如果是,則輸出 code 和 message 的陣列。我們實現的 wpjam_send_json 已經能夠自動化處理這些錯誤了。

wp_is_json_request


判斷目前請求是不是JSON 請求,或是回傳JSON 結果,這個函數沒有參數,直接使用:

#wp_is_json_request()


它透過判斷$_SERVER['HTTP_ACCEPT'] 中含有application/json,或$_SERVER['CONTENT_TYPE'] 等於application/json。

wp_is_jsonp_request


#判斷目前請求是不是JSONP 請求,或是回傳JSONP 結果,這個函數沒有參數,直接使用:

wp_is_jsonp_request()


它先判斷$_GET['_jsonp'] ,是否存在,然後透過函數wp_check_jsonp_callback 判斷它的值是否合法。

wp_check_jsonp_callback


#判斷JSONP callback 是不是一個合法的JavaScript callback 函數:

wp_check_jsonp_callback( $callback )


合法的JavaScript callback 函數只能數字加字符,以及英文點號。

以上是WordPress JSON 處理相關函數大全的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 與 Flutter 的比較:行動裝置開發的最佳選擇 PHP 與 Flutter 的比較:行動裝置開發的最佳選擇 May 06, 2024 pm 10:45 PM

PHP和Flutter是行動端開發的流行技術。 Flutter勝在跨平台能力、效能和使用者介面,適合需要高效能、跨平台和自訂UI的應用程式。 PHP則適用於效能較低、不跨平台的伺服器端應用程式。

wordpress如何修改頁面寬度 wordpress如何修改頁面寬度 Apr 16, 2024 am 01:03 AM

透過編輯 style.css 文件,您可以輕鬆修改 WordPress 頁面寬度:編輯 style.css 文件,新增 .site-content { max-width: [您的首選寬度]; }。修改 [您的首選寬度] 以設定頁面寬度。儲存變更並清除快取(可選)。

wordpress文章在哪個資料夾 wordpress文章在哪個資料夾 Apr 16, 2024 am 10:29 AM

WordPress 文章儲存在 /wp-content/uploads 資料夾中。此資料夾使用子資料夾對不同類型的上傳進行分類,包括按年、月和文章 ID 組織的文章。文章檔案以純文字格式 (.txt) 存儲,檔案名稱通常包含其 ID 和標題。

wordpress如何做產品頁 wordpress如何做產品頁 Apr 16, 2024 am 12:39 AM

在WordPress 中建立產品頁面:1. 建立產品(名稱、描述、圖片);2. 自訂頁面範本(新增標題、描述、圖片、按鈕);3. 輸入產品資訊(庫存、尺寸、重量);4 .建立變體(不同顏色、尺寸);5. 設定可見性(公開或隱藏);6. 啟用/停用評論;7.預覽並發布頁面。

wordpress模板檔案在哪 wordpress模板檔案在哪 Apr 16, 2024 am 11:00 AM

WordPress 範本檔案位於 /wp-content/themes/[主題名稱]/ 目錄。它們用於決定網站的外觀和功能,包括頁首(header.php)、頁尾(footer.php)、主模板(index.php)、單篇文章(single.php)、頁(page.php)、檔案(archive.php)、類別(category.php)、標籤(tag.php)、搜尋(search.php)和404 錯誤頁面(404.php)。透過編輯和修改這些文件,可以自訂 WordPress 網站的外

wordpress如何搜尋作者 wordpress如何搜尋作者 Apr 16, 2024 am 01:18 AM

在 WordPress 中搜尋作者:1. 登入管理面板後,導覽至“文章”或“頁面”,使用搜尋欄輸入作者姓名,在“篩選器”中選擇“作者”。 2. 其他技巧:使用通配符擴大搜尋範圍,使用運算子組合條件,或輸入作者 ID 以搜尋文章。

wordpress用什麼語言開發 wordpress用什麼語言開發 Apr 16, 2024 am 12:03 AM

WordPress 採用 PHP 語言開發,作為其核心程式語言,用於處理資料庫互動、表單處理、動態內容產生和使用者請求。 PHP 被選擇的原因包括跨平台相容性、易於學習、活躍社群以及豐富的函式庫和框架。除了 PHP,WordPress 還使用 HTML、CSS、JavaScript、SQL 等語言來增強其功能。

wordpress哪個版本穩定 wordpress哪個版本穩定 Apr 16, 2024 am 10:54 AM

最穩定的 WordPress 版本是最新版本,因為它包含最新的安全性修補程式、增強效能並引入新功能和改進。為了更新到最新版本,請登入 WordPress 儀表板,前往「更新」頁面並點擊「立即更新」。

See all articles