海龍王彼得的名言「只要你懂海,海就會幫助你。」
這句來自海龍王彼得的名言,點出了 API 的核心價值:當你理解並善用 API 的運作方式,它就能成為你開發的得力助手,幫你輕鬆實現各種功能。以下我們將以這句話為靈感,深入探討如何使用 WordPress REST API 來打造強大的應用程式或網站功能。
什麼是 WordPress REST API?
WordPress REST API 是一個強大的工具,讓開發者可以透過 HTTP 請求與 WordPress 網站進行交互。你可以用它來取得文章、頁面、分類、標籤等數據,或是創建、更新、刪除內容。它以 JSON 格式傳輸數據,易於與前端框架(如 React、Vue)或其他後端系統整合。
開始之前
- 確保你的 WordPress 網站版本為 4.7 或更高(REST API 從此版本開始內建)。
- 你需要基本的 HTTP 請求知識(GET、POST、PUT、DELETE)。
- 安裝 Postman 或使用程式語言(如 JavaScript 或 Python)來測試 API 請求。
步驟 1:啟用 WordPress REST API
WordPress REST API 預設已啟用,無需額外設定。你可以透過以下基礎端點訪問:
https://your-site.com/wp-json/wp/v2/
這個端點會返回所有可用的 API 路由,例如 /posts、/pages、/categories 等。
步驟 2:常見的 API 請求範例
以下是一些常見的操作,展示如何使用 WordPress REST API。
1. 取得所有文章
請求:
GET https://your-site.com/wp-json/wp/v2/posts
回應(JSON 格式):
[ { "id": 1, "title": { "rendered": "Hello World" }, "content": { "rendered": "<p>Welcome to WordPress!</p>" }, "date": "2023-10-01T12:00:00", ... }, ... ]
2. 取得單篇文章
請求:
GET https://your-site.com/wp-json/wp/v2/posts/1
這會返回 ID 為 1 的文章詳細資料。
3. 新增文章(需要認證)
若要創建文章,你需要認證(例如使用 JWT 或 OAuth)。以下是使用 JavaScript 的範例:
fetch('https://your-site.com/wp-json/wp/v2/posts', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer your-token' }, body: JSON.stringify({ title: 'My New Post', content: 'This is the content of my new post.', status: 'publish' }) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
步驟 3:認證方式
WordPress REST API 的寫入操作(如創建、更新、刪除)需要認證。常見的認證方式包括:
- Basic Authentication:適用於測試環境,使用用戶名和密碼。
- JWT Authentication:使用 JSON Web Tokens,適合生產環境。需要安裝插件,如「JWT Authentication for WP REST API」。
- OAuth 2.0:更安全的認證方式,適合第三方應用程式。
安裝並設定「Application Passwords」功能(WordPress 5.6 以上支援):
- 在 WordPress 後台進入「用戶 > 個人資料」。
- 啟用應用程式密碼,生成一組密碼。
- 在 API 請求中使用:
Authorization: Basic <base64-encoded-username:application-password>
步驟 4:進階應用
- 篩選數據:使用查詢參數來篩選結果,例如:
GET https://your-site.com/wp-json/wp/v2/posts?categories=5&per_page=10
這會返回分類 ID 為 5 的前 10 篇文章。 - 自訂端點:你可以使用 WordPress 的 register_rest_route 函數創建自訂 API 端點。例如:
add_action('rest_api_init', function () { register_rest_route('myplugin/v1', '/data', array( 'methods' => 'GET', 'callback' => 'my_custom_endpoint', )); }); function my_custom_endpoint() { return new WP_REST_Response(array('message' => 'Hello from custom endpoint!'), 200); }
步驟 5:最佳實踐
- 錯誤處理:檢查 API 回應的狀態碼(200 表示成功,401 表示未授權,404 表示未找到)。
- 快取:使用快取機制(如 Transients API)來減少 API 請求次數,提升效能。
- 安全性:永遠使用 HTTPS,並限制 API 訪問權限。
透過 WordPress REST API,你可以輕鬆地將 WordPress 網站與其他應用程式整合,實現從簡單數據查詢到複雜應用程式的各種功能。從基本的 GET 請求開始,逐步探索認證和自訂端點,你將發現 API 的無限可能!