首頁 CMS教程 &#&按 將自定義路線添加到WordPress REST API

將自定義路線添加到WordPress REST API

Feb 09, 2025 am 10:44 AM

Adding Custom Routes to the WordPress REST API

WordPress REST API自定義路由:擴展API功能的強大工具

本文探討WordPress REST API的自定義路由功能,展示如何創建定制化的API解決方案。 與僅使用默認路由相比,自定義路由提供了更精細的控制和擴展性。

核心要點:

  • WordPress REST API具有高度可定制性,允許開發者添加自定義路由和端點,滿足特定需求。
  • 使用register_rest_route()函數,結合rest_api_init動作,即可添加自定義路由。 需指定命名空間、路由路徑以及包含方法、回調函數和權限信息的端點數組。
  • 端點可定義具體的HTTP方法(GET、POST、PUT、DELETE),並指定其接受的數據字段、默認值、清理和驗證規則。
  • 端點中的權限回調函數確保只有授權請求才能訪問路由,通過檢查用戶權限或自定義授權方法來增強安全性。
  • 自定義路由和端點提供了一種更結構化、更安全的方式來擴展WordPress REST API,精確控制數據輸入和輸出,成為開發者增強WordPress項目的強大工具。

超越默認路由:構建無限可能

關於WordPress REST API的大部分討論都集中在查詢默認路由上,這使得它看起來像一個單一的API,例如Twitter API。 然而,WordPress REST API並非單一API,而是數百萬個高度可定制的API的集合,本身也可以作為構建API的工具。 默認路由是眾多站點需求的折中方案,並非所有任務都能僅靠默認路由完成。

就像WordPress不僅僅是全局WP_Query對像一樣,REST API也不僅僅是默認API。 只使用默認路由就像在傳統的WordPress項目中從不創建自己的WP_Query對象,或覆蓋pre_get_posts中的默認查詢一樣。雖然可行,但並非所有工作都能僅靠默認的WordPress URL路由來完成。

REST API同樣如此。 REST API的聯合首席開發者Ryan McCue曾提到,該項目的第二版分為兩部分:默認路由和創建RESTful API的基礎架構。默認路由為創建自定義路由提供了很好的示例。

添加路由:register_rest_route()函數

REST API第二版引入了一個名為register_rest_route()的新函數,允許向REST API添加路由並傳入端點數組。 對於每個端點,不僅要提供處理請求的回調函數,還可以定義查詢中所需字段,包括默認值、清理和驗證回調函數以及單獨的權限回調函數。

本文將重點介紹回調函數、字段參數和權限檢查這三個方面,它們展示了API的架構,並通過一個示例演示如何創建一個自定義路由,其中包含兩個端點,用於顯示由Easy Digital Downloads (EDD)驅動的電子商務網站中的產品信息。

設置路由:命名空間和路由路徑

定義自定義路由時,需在rest_api_init動作中使用register_rest_route()函數。 該函數接受四個參數:

  1. 命名空間: 所有路由都必須命名空間化,作為“wp-json”之後下一個URL段。 默認路由的命名空間為wp。 命名空間避免了路由衝突。

  2. 路由路徑: 命名空間後的URL。 例如,“/products”或“/products/(?P[d] )”(允許在最後一個URL段中使用數字,例如帖子ID)。

  3. 端點數組: 定義路由的端點,包含方法、回調函數、參數等信息。

  4. override參數(可選): 布爾值,用於處理與已定義路由的衝突。 默認為false,嘗試合併路由;設置為true則替換已聲明的路由。

設置端點:方法和字段

端點需要定義一個或多個HTTP傳輸方法(GET/POST/PUT/DELETE)。 可以使用WP_REST_Server類中的常量來定義方法,例如WP_REST_Server::READABLE(只允許GET請求)或WP_REST_Server::ALLMETHODS(允許所有方法)。

在定義字段時,可以指定字段的默認值、清理回調函數等。 這使得回調函數能夠信任它接收到的數據。

回調函數和權限回調函數

每個端點的回調函數(在callback鍵中指定)是請求將被分派到的方法(如果權限回調函數通過)。 權限回調函數(在permission_callback鍵中指定)檢查當前用戶是否有權訪問端點。

處理和響應請求

回調函數接收WP_REST_Request對象,可以使用get_params()方法獲取已清理和驗證的參數。 可以使用rest_ensure_response()函數創建WP_REST_Response對象,確保響應是正確的JSON格式,並包含必要的標頭。

總結:自定義API,無限可能

WordPress REST API的默認路由非常有用,但自定義路由提供了更強大的控制和擴展能力。 當默認路由無法滿足需求時,創建自定義路由是一個有效的解決方案。

以上是將自定義路線添加到WordPress REST API的詳細內容。更多資訊請關注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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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)

熱門話題

Java教學
1676
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
如何在 WordPress 中獲取登錄用戶信息以獲得個性化結果 如何在 WordPress 中獲取登錄用戶信息以獲得個性化結果 Apr 19, 2025 pm 11:57 PM

最近,我們向您展示瞭如何通過允許用戶將自己喜歡的帖子保存在個性化庫中來為用戶創建個性化體驗。您可以通過在某些地方(即歡迎屏幕)使用他們的名字,將個性化結果提升到另一個水平。幸運的是,WordPress使獲取登錄用戶的信息變得非常容易。在本文中,我們將向您展示如何檢索與當前登錄用戶相關的信息。我們將利用get_currentuserinfo(); 功能。這可以在主題中的任何地方使用(頁眉、頁腳、側邊欄、頁面模板等)。為了使其工作,用戶必須登錄。因此我們需要使用

wordpress文章列表怎麼調 wordpress文章列表怎麼調 Apr 20, 2025 am 10:48 AM

有四種方法可以調整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數據庫。

如何開始WordPress博客:初學者的分步指南 如何開始WordPress博客:初學者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人們在網上表達觀點、意見和見解的理想平台。許多新手渴望建立自己的網站,卻因擔心技術障礙或成本問題而猶豫不決。然而,隨著平台不斷發展以滿足初學者的能力和需求,現在開始變得比以往任何時候都更容易。 本文將逐步指導您如何建立一個WordPress博客,從主題選擇到使用插件提升安全性和性能,助您輕鬆創建自己的網站。 選擇博客主題和方向 在購買域名或註冊主機之前,最好先確定您計劃涵蓋的主題。個人網站可以圍繞旅行、烹飪、產品評論、音樂或任何激發您興趣的愛好展開。專注於您真正感興趣的領域可以鼓勵持續寫作

如何在父分類的存檔頁面上顯示子分類 如何在父分類的存檔頁面上顯示子分類 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分類存檔頁面上顯示子分類嗎?在自定義分類存檔頁面時,您可能需要執行此操作,以使其對訪問者更有用。在本文中,我們將向您展示如何在父分類存檔頁面上輕鬆顯示子分類。為什麼在父分類存檔頁面上顯示子分類?通過在父分類存檔頁面上顯示所有子分類,您可以使其不那麼通用,對訪問者更有用。例如,如果您運行一個關於書籍的WordPress博客,並且有一個名為“主題”的分類法,那麼您可以添加“小說”、“非小說”等子分類法,以便您的讀者可以

如何在 WordPress 中按帖子過期日期對帖子進行排序 如何在 WordPress 中按帖子過期日期對帖子進行排序 Apr 19, 2025 pm 11:48 PM

過去,我們分享過如何使用PostExpirator插件使WordPress中的帖子過期。好吧,在創建活動列表網站時,我們發現這個插件非常有用。我們可以輕鬆刪除過期的活動列表。其次,多虧了這個插件,按帖子過期日期對帖子進行排序也非常容易。在本文中,我們將向您展示如何在WordPress中按帖子過期日期對帖子進行排序。更新了代碼以反映插件中更改自定義字段名稱的更改。感謝Tajim在評論中讓我們知道。在我們的特定項目中,我們將事件作為自定義帖子類型。現在

wordpress主機怎麼建站 wordpress主機怎麼建站 Apr 20, 2025 am 11:12 AM

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網站。發布您的網站。

如何使用 IFTTT 自動化 WordPress 和社交媒體(及更多) 如何使用 IFTTT 自動化 WordPress 和社交媒體(及更多) Apr 18, 2025 am 11:27 AM

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

wordpress怎麼導入源碼 wordpress怎麼導入源碼 Apr 20, 2025 am 11:24 AM

導入 WordPress 源碼需要以下步驟:創建子主題以進行主題修改。導入源碼,覆蓋子主題中的文件。激活子主題,使其生效。測試更改,確保一切正常。

See all articles