在 WordPress REST API 端點中使用 GET 方法來取得使用者
WordPress REST API 提供了一種強大的方式,讓開發者能夠通過 HTTP 請求與 WordPress 網站進行交互。通過 REST API,開發者可以輕鬆地創建、讀取、更新和刪除網站上的數據。在這節課中,我們將學習如何使用 rest_api_init
鉤子來創建自訂的 REST API 端點。
rest_api_init
鉤子的基本概念
rest_api_init
是 WordPress REST API 的一個動作鉤子,當 REST API 伺服器完成初始化後,這個鉤子就會被觸發。開發者可以利用這個鉤子來註冊自訂的 REST API 端點或修改現有的端點。這使得 WordPress 的 REST API 可以根據特定需求進行擴展,滿足更複雜的應用場景。
創建自訂 REST API 端點的步驟
我們將通過以下步驟來創建一個自訂的 REST API 端點,該端點允許請求者使用 GET 方法來取得使用者清單。
步驟 1:註冊自訂 REST API 端點
首先,我們需要創建一個函數來註冊自訂的 REST API 端點。這個函數將使用 register_rest_route
函數來定義端點的路徑、HTTP 方法以及處理請求的回調函數。
- 範例代碼:
// 使用 'rest_api_init' 鉤子來註冊自訂的 REST API 端點 add_action('rest_api_init', 'register_rest_routes'); function register_rest_routes() { // 註冊自訂的 REST API 端點 'iot/v1/user/' register_rest_route( 'iot/v1', // 命名空間 '/user/', // 端點路徑 array( 'methods' => 'GET', // HTTP 方法 'callback' => 'list_user_api' // 回調函數 ) ); }
代碼解釋:
rest_api_init
:這個鉤子在 REST API 伺服器初始化後被觸發,用來註冊自訂的 API 端點。register_rest_route
:這個函數用來註冊自訂的 API 端點,接受三個參數:命名空間、路徑以及端點的配置數組。'iot/v1'
:定義了 API 的命名空間。'/user/'
:定義了 API 端點的路徑。'methods' => 'GET'
:指定了這個端點接受的 HTTP 方法。'callback' => 'list_user_api'
:指定了當這個端點被訪問時所執行的回調函數。
步驟 2:實現回調函數來處理 API 請求
接下來,我們需要實現 list_user_api
函數,這個函數會在請求到達時執行並返回相應的數據。在這個例子中,我們將列出所有使用者並返回使用者的基本信息。
- 範例代碼:
// 回調函數來處理 GET 請求並返回使用者清單 function list_user_api($request) { // 設置查詢參數來獲取使用者列表 $args = array( 'orderby' => 'user_nicename', 'order' => 'ASC' ); $users = get_users($args); // 獲取使用者數據 $output_array_data = array(); // 初始化返回數據的陣列 // 遍歷使用者並構建返回數據 foreach ($users as $user) { $output_data = array(); $output_data['id'] = $user->ID; $output_data['user_account'] = $user->user_login; $output_data['user_name'] = $user->last_name . $user->first_name; $output_array_data[] = $output_data; } // 返回包含使用者數據的 WP_REST_Response 對象 return new WP_REST_Response( array( 'code' => 200, 'message' => 'success', 'data' => $output_array_data ), 200 ); }
代碼解釋:
get_users($args)
:使用這個函數根據指定的參數(如排序)獲取網站的使用者列表。$output_array_data
:初始化一個陣列來存儲處理過的使用者數據。foreach ($users as $user)
:遍歷每個使用者並提取需要的數據,如使用者 ID、登錄名稱和姓名。new WP_REST_Response(...)
:創建並返回一個WP_REST_Response
對象,這個對象包含 API 的回應數據以及 HTTP 狀態碼。
測試自訂 REST API 端點
完成代碼後,您可以通過瀏覽器或 API 測試工具(如 Postman)來測試這個自訂的 REST API 端點。
- 測試步驟:
- 打開 Postman 或瀏覽器。
- 輸入 API 請求的 URL,例如:
http://yourdomain.com/wp-json/iot/v1/user/
- 發送 GET 請求並檢查回應。
- 您應該會看到返回的使用者列表,包括使用者的 ID、登錄名稱和姓名。