JSON API – WordPress plugin 外掛推薦下載

點擊下載

JSON API

外掛Plugin描述

JSON API允許您使用HTTP請求檢索和操作WordPress內容。有三個主要目標:

提供簡單,一致的外部接口創建穩定,易懂的內部實現為WordPress啟用新類型的擴展

此外掛Plugin創建於現代藝術博物館的博客 Inside / Out ,由Ruby on Rails提供。我們選擇了一個顯示WordPress後端提供的內容的Rails前端,而不是將網站模板重新實現為WordPress主題。 JSON API為檢索內容和接受註釋提交提供了必要的接口。

有關完整文檔,請參閱其他註釋部分。

文檔

一般概念
1.1。 請求
1.2。 控制器
1.3。 響應 請求方法
2.1。 核心控制器方法
2.2。 發布控制器方法
2.3。 響應控制器方法
2.4。 小組件控制器方法 請求參數
3.1。 輸出修改參數
3.2。 內容修改參數
3.3。 使用包含/排除和重定向 響應對象
4.1。 回復後對象
4.2。 類別響應對象
4.3。 標籤響應對象
4.4。 作者響應對象
4.5。 評論響應對象
4.6。 附件響應對象擴展JSON API
5.1。 外掛Plugin掛鉤
5.2。 開發JSON API控制器
5.3。 配置選項 單元測試
6.1。 準備WordPress測試站點
6.2。 運行測試

1.一般概念

1.1。請求

請求使用簡單的REST樣式HTTP GET或POST。要調用API,請在URL中包含 json 的非空查詢值。

JSON API以兩種模式運行:

通過在任何WordPress頁面上將 json 查詢var設置為非空值來觸發隱式模式。通常出現在該頁面上的內容以JSON格式返回。 通過將 json 設置為已知方法字符串來觸發顯式模式。有關完整的方法列表,請參見第2節:請求方法

隱式模式示例:

http://www.example.org/?json=1 http://www.example.org/?p=47&json= 1 http://www.example.org/tag/banana/?json=1

明確的模式示例:

http://www.example.org /?json = get_recent_posts http://www.example.org/?json=get_post&post_id=47 http://www.example.org/?json=get_tag_posts& tag_slug = banana

配置了用戶友好的永久鏈接:

http://www.example.org/api/get_recent_posts/ http://www.example。 org / api / get_post /?post_id = 47 http://www.example.org/api/get_tag_posts/?tag_slug=banana

進一步閱讀
有關修改響應的請求參數的詳細信息,請參閱第3節:請求參數

1.2。控制器

1.0版本的JSON API引入了模塊化控制器系統。這允許開發人員靈活地向API添加功能,並使用戶可以更好地控制他們啟用的方法。

核心控制器

1.0版之前可用的大多數方法已移至核心控制器。兩個例外是 submit_comment create_post ,它們現在分別可以從Respond和Posts控制器獲得。 Core控制器是默認啟用的唯一控制器。必須從JSON API設置頁面(在WordPress管理菜單中的設置下)啟用所有其他功能。

指定控制器

根據您調用API的方式,有幾種指定控制器的方法:

http://www.example.org/ ?json = get_recent_posts (隱含核心控制器,方法 get_recent_posts http://www.example.org/api/info/ 核心控制器隱含) http://www.example.org/api/core/get_category_posts/ 核心控制器也可以明確指定) http://www.example.org/?json=respond.submit_comment 回复控制器, submit_comment 方法)

傳統兼容性
JSON API保留對其1.0之前的方法的支持。例如,如果在未指定控制器的情況下調用方法 create_post ,則選擇Posts控制器而不是Core。

可用控制器

當前版本包括三個控制器:Core,Posts和Respond。鼓勵開發人員建議或提交其他控制器。

進一步閱讀
參見第2節:請求方法以獲取可用控制的完整參考rs和方法。有關使用新控制器擴展JSON API的文檔,請參閱第5.2節:開發JSON API控制器

1.3。響應

JSON API的標準響應格式(正如您可能已經猜到的) JSON

以下是來自 http:// localhost / wordpress /?json = 1 的示例響應,在默認的WordPress安裝上調用(格式化為可讀性):

  {“status”:“ok”,“count”:1,“count_total”:1,“pages”:1,“posts”:[{“id”:1,“type”:“post”,“slug” “:”hello-world“,”url“:”http:\ / \ / localhost \ / wordpress \ /?p = 1“,”title“:”Hello world!“,”title_plain“:”Hello world!“ ,“內容”:“< p>歡迎使用WordPress。這是您的第一篇文章。編輯或刪除它,然後開始撰寫博客!< \ / p> \ n”,“excerpt”:“歡迎使用WordPress。這是你的第一篇文章。編輯或刪除它,然後開始寫博客!\ n“,”date“:”2009-11-11 12:50:19“,”修改“:”2009-11-11 12:50:19“ ,“categories”:[],“tags”:[],“author”:{“id”:1,“slug”:“admin”,“name”:“admin”,“first_name”:“”,“ last_name“:”“,”暱稱“:”“,”url“:”“,”描述ion“:”“},”comments“:[{”id“:1,”name“:”WordPress先生“,”url“:”http:\ / \ / wordpress.org \ /“,”date“: “2009-11-11 12:50:19”,“content”:“< p>嗨,這是評論。< br \ />要刪除評論,只需登錄並查看帖子的評論。在那裡,您可以選擇編輯或刪除它們。< \ / p> \ n“,”parent“:0}],”comment_count“:1,”comment_status“:”open“}]}< h3> 2.請求方法< / h3>  

請求方法可從以下控制器獲得:

核心控制器 – 基本介紹tion methodsPosts controller – posts的數據操作方法響應控制器 – 註釋/引用提交方法小部件控制器 – 檢索側邊欄小部件

2.1。核心控制器方法

核心控制器提供了一套完整的內省方法,用於從WordPress中檢索內容。

方法:info

返回有關JSON API的信息。

可選參數

controller – 返回有關特定控制器的詳細信息

響應

  {“status”:“ok”,“json_api_version “:”“1.0”,“控制器”:[“core”]}  

響應“controller = core”

  {“status”:“ok”, “名稱”:“核心”,“描述”:“基本內省方法”,“方法”:[...]}< h3>方法:get_recent_posts< / h3>  

返回最近發布的帖子數組。您可以通過將 json 設置為非空值(即 json = 1 )或從任何頁面設置 json = get_recent_posts,從WordPress主頁調用此方法

可選參數

count – 確定每頁返回的帖子數(默認值為10) – 從結果中返回特定頁碼 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“count”:10,“count_total”:79,“pages” :7,“帖子”:[{...},{...},...]}< h3>方法:get_posts< / h3>  

根據WordPress的 WP_Query 參數返回帖子。一個默認參數是 ignore_sticky_posts = 1 (可以覆蓋它)。

可選論證ments

count – 確定每頁返回的帖子數量(默認值為10)頁面 – 從結果 post_type 返回特定頁碼 – 用於檢索自定義帖子類型

進一步閱讀
有關支持的參數的完整列表,請參閱 WP_Query 文檔 post_status 參數當前被忽略。

回复

  {“status”:“ok”,“count”:1,“posts”:[{...}]}< h3>方法:get_post&lt ; / H3>  

返回單個帖子對象。

需要滿足以下條件之一

在帖子URL id post_id上隱式調用JSON API(即?json = 1 – 設置為帖子的ID slug post_slug – 設置為帖子的URL slug

可選參數

post_type – 用於檢索自定義帖子類型

回复

  {“status”:“ok”,“post”:{...}}< h3>方法:get_page< / h3>  

返回單個頁面對象。

需要滿足以下條件之一

在頁面URL id page_id上​​隱式調用JSON API(即?json = 1 – 設置為頁面的ID slug page_slug – 設置為頁面的URL slug

可選參數

children – 設置為a非空值以包含子頁面的遞歸層次結構 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“page “:{...}}< h3>方法:get_date_posts< / h3> 

返回特定日期歸檔中的帖子/頁面數組(按日,月或年)。

需要滿足以下條件之一

在日期存檔頁日期上隱式調用JSON API(即?json = 1 ) – 設置為a日期格式為 YYYY YYYY-MM YYYY-MM-DD (非數字字符從var中刪除,因此 YYYYMMDD YYYY / MM / DD 也有效)

可選參數

count – 確定每頁返回的帖子數(默認值為10) page – 從結果中返回特定頁碼 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”, “count”:10,“count_total”:79,“pages”:7,“posts”:[{...},{...},...]}< h3>方法:get_category_posts< / h3&gt ;  

返回特定類別中的帖子/頁面數組。

需要滿足以下條件之一

在類別存檔頁 id 上隱式調用JSON API(即?json = 1 ) category_id – 設置為類別ID slug category_slug – 設置為類別的URL slug

可選參數

count – 確定方式每頁返回許多帖子(默認值為10)頁面 – 從結果返回特定頁碼 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“category”:{...}“posts”:[{... },{...},...]}< h3>方法:get_tag_posts< / h3> 

返回具有特定標記的帖子/頁面數組。

需要滿足以下條件之一

在標籤存檔頁 id 上隱式調用JSON API(即?json = 1 ) tag_id – 設置為標籤的ID slug tag_slug – 設置為標籤的URL slug

可選參數

count – 確定如何每頁返回許多帖子(默認值為10)頁面 – 從結果返回特定頁碼 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“tag”:{...}“posts”:[{... },{...},...]}< h3>方法:get_author_posts< / h3>  

返回由特定作者編寫的帖子/頁面數組。

需要滿足以下條件之一

在作者存檔頁 id 上隱式調用JSON API(即?json = 1 ) author_id – 設置為作者的ID slug author_slug – 設置為作者的URL slug

可選參數

count – 確定如何每頁返回許多帖子(默認值為10)頁面 – 從結果返回特定頁碼 post_type – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“author”:{...}“posts”:[{... },{...},...]}< h3>方法:get_search_results< / h3>  

返迴響應搜索查詢的帖子/頁面數組。

其中一個人due是必需的

在搜索結果頁面上隱式調用JSON API(即?json = 1 搜索 – 設置為所需的搜索查詢

可選參數

count – 確定每頁返回的帖子數量(默認值為10)頁面 – 從結果 post_type 返回特定頁碼 – 用於檢索自定義帖子類型

響應

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“posts”:[{ ...},{...},...]}< h3>方法:get_date_index< / h3>  

返回日期頁面永久鏈接的數組和存檔的樹結構表示。

回复

  {“status”:“ok”,“永久鏈接”:[“......”,“......”,“......”],“ tree“:{”2009“:{”09“:17,”10“:20,”11“:7}}  

注意:樹由 response.tree排列。[年]。[月]。[帖子數量]

方法:get_category_index

返回活動類別的數組。

可選參數

parent – 返回父ID

的直接子項的類別

   {“status”:“ok” ,“count”:3,“categories”:[{...},{...},{...}]}< h3>方法:get_tag_index< / h3> 

返回活動標記數組。

回复

   {“status”:“ok”,“count”:3“tags”:[{...},{...},{.. 。}]}< h3>方法:get_author_index< / h3> 

返回活動博客作者的數組。

回复

   {“status”:“ok”,“count”:3,“authors”:[{...},{...},{...}]}< h3>方法:get_page_index< / h3> 

返回

個帖子的分層樹。

回复

   {“status”:“ok”,“pages”:[{...},{...},{...}]}&lt ; h3>方法:get_nonce< / h3> 

返回調用某些數據操作方法所需的WordPress隨機數值。

必需參數 controller - 您將使用nonce進行方法的方法的JSON API控制器 - 您要調用的方法(當前 create_post 是唯一需要nonce的方法。

Response

  {“status”:“ok”,“controller”:“posts”,“method”:“create_post “,”nonce“:”cefe01efd4“}  

進一步閱讀
要了解有關如何在WordPress中使用隨機數的更多信息,請參閱 Mark Jaquith關於主題

2.2。頁面控制器方法

方法:create_post

創建新帖子。

必需參數

nonce – 可從 get_nonce 方法獲得(使用vars controller = posts method = create_post調用

可選參數

狀態 – 設置帖子狀態(“草稿”或“發布”),默認為“草稿”標題 – 帖子標題內容 – 帖子內容作者 – 帖子的作者(登錄名),默認是當前登錄的用戶類別 – 以逗號分隔的類別列表( URL slugs)標籤 – 以逗號分隔的標籤列表(URL slugs)

注意:包含文件名為附件的上傳字段將導致附件與新帖子一起存儲。

方法:update_post

更新帖子。

必需參數

nonce – 可從 get_nonce 方法獲得(使用vars controller = posts method = update_post調用

需要以下其中一項

id post_id – 設置為帖子的ID slug post_slug – 設置為帖子的URL slug

可選參數

狀態 – 設置帖子狀態(“草稿”或“發布”),默認為“草稿”標題 – 帖子標題內容 – 帖子內容作者 – 帖子的作者(登錄名),默認是當前登錄用戶類別 – 逗號 – 分隔的類別列表(URL slugs)標記 – 以逗號分隔的標記列表(URL slugs)

注意:包括名為附件的文件上載字段將導致附件與您的帖子一起存儲。

方法:delete_post

刪除帖子。

必需參數

nonce – 可從 get_nonce 方法獲得(使用vars controller = posts method = delete_post調用

需要以下其中一項

id post_id – 設置為帖子的ID slug post_slug – 設置為帖子的URL slug

2.3。響應控制器方法

方法:submit_comment

向WordPress帖子提交評論。

必需參數

post_id – 在名稱上發表評論的帖子 – 評論者姓名電子郵件 – 評論者的電子郵件地址內容 – 註釋內容

可選參數

重定向 – 重定向而不是返回JSON對象 redirect_ok – 當狀態值為時,重定向到特定URL redirect_error – 當狀態值為時,重定向到特定URL錯誤 redirect_pending – 當狀態值掛起時,重定向到特定URL

自定義狀態值

待處理 – 如果評論提交處於待審核狀態,則分配

2.4。窗口小部件控制器方法

方法:get_sidebar

檢索分配給側邊欄的窗口小部件。

必需參數

sidebar_id – 要檢索的側邊欄的名稱或編號

3.請求參數

可以通過指定其中一個來控制API請求以下參數作為URL查詢變量。

示例

調試響應: http://www.example.org/api/get_page_index/?dev=1 窗口小部件樣式的JSONP輸出: http:/ /www.example.org/api/get_recent_posts/?callback=show_posts_widget&read_more=More&count=3 重定向錯誤: http://www.example.org/api/posts/create_post/? callback_error = http%3A%2F%2Fwww.example.org%2Fhelp.html

3.1。輸出修改參數

以下參數修改了從API返回結果的方式。重定向響應樣式旨在與數據操作方法一起使用。

回調設置為JavaScript函數名稱將觸發JSONP樣式的回調。將重定向設置為URL將導致用戶的瀏覽器重定向到指定的URL,並將狀態值附加到查詢變量(請參閱響應對象下面的部分,用於解釋狀態值。)設置 redirect_ [status] 可以根據狀態值控制生成的瀏覽器重定向。設置 dev 為非空值添加空白以便於閱讀並使用 text / plain 進行響應除非將 dev 設置為非空值,否則將禁止錯誤設置 json_encode_options 將允許您指定一個整數位掩碼來修改 PHP的 json_encode 的行為(注意:此選項僅在PHP版本5.3+中被識別)設置 json_unescaped_unicode 將替換unicode-escaped字符及其未轉義的等價物(例如, \ u00e1

變為á)省略所有上述參數將導致標準的JSON響應。

3.2。內容修改參數

這些參數可用於修改所有內省方法: date_format - 更改日期值的格式。使用與PHP的date()函數相同的語法。默認值為 Y-m-d H:i:s read_more - 更改帖子內容中的“閱讀更多”鏈接文字。 include – 指定要包含的發布數據字段。期望以逗號分隔的帖子字段列表。保留此空包括所有字段。 exclude - 指定要排除的發布數據字段。期望以逗號分隔的帖子字段列表。 custom_fields - 包含帖子的自定義字段中的值。期望以逗號分隔的自定義字段鍵列表。 author_meta - 包括其他作者元數據。應該是以逗號分隔的元數據字段列表。 count - 控制要包含的帖子數量(默認為WordPress指定的數量) order - 控制發布結果的順序('DESC'或'ASC')。默認值為“DESC”。 order_by - 控制按結果排序的字段。預計具有以下值之一:作者 日期(默認值)標題 已修改 menu_order (僅適用於頁數) ID rand meta_value meta_key 也必須設置) comment_count meta_key meta_value meta_compare

– 根據自定義字段鍵或值檢索帖子(或頁面)。

3.3。使用包含/排除和重定向

關於包括 / 排除參數

null

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *