只要你懂API,API就會幫助你。

海龍王彼得的名言「只要你懂海,海就會幫助你。」

這句來自海龍王彼得的名言,點出了 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 以上支援):

  1. 在 WordPress 後台進入「用戶 > 個人資料」。
  2. 啟用應用程式密碼,生成一組密碼。
  3. 在 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 的無限可能!

瀏覽次數:9