REST API

WordPress REST API 管理教學

WordPress REST API 讓外部系統可以讀取或管理文章、頁面、分類、媒體與使用者資料。它適合用在自動發文、內容同步、後台工具、行動 App 或把 WordPress 當成 headless CMS 的情境。

REST API 基本概念

WordPress 內建 REST API,常見入口是 /wp-json/。文章、頁面、分類、標籤、媒體等資源都有對應端點,例如 /wp-json/wp/v2/posts 和 /wp-json/wp/v2/media。

GET 類請求通常可用於公開資料讀取;新增、修改或刪除內容則需要驗證與足夠權限。設計 API 流程時,要先區分公開讀取、內部管理與高風險寫入操作。

  • /wp-json/:查看 API index。
  • /wp-json/wp/v2/posts:文章列表與文章管理。
  • /wp-json/wp/v2/pages:頁面列表與頁面管理。
  • /wp-json/wp/v2/media:媒體上傳與管理。

驗證與 Application Passwords

管理內容時可以使用 WordPress 的 Application Passwords。它讓你為特定使用者建立一組應用程式密碼,用於 API 驗證,而不是把後台登入密碼交給外部程式。

Application Passwords 仍然繼承該使用者的權限,所以不要用最高權限帳號做所有整合。建議為 API 建立專用帳號,只給需要的角色與能力。

  • 為 API 建立專用使用者。
  • 用 Application Passwords 取代主密碼。
  • 離職、外包結束或整合停用時立即撤銷密碼。
  • 所有 API 管理流量都應走 HTTPS。

文章與頁面管理流程

自動建立文章時,建議先以草稿狀態建立,確認標題、slug、分類、摘要、featured media 與 SEO 欄位都正確後,再發布。

若網站使用 SEO 外掛或自訂欄位,API 流程需要確認那些欄位是否能透過 REST API 寫入。必要時可以建立小型外掛,把需要的 meta 欄位註冊到 REST API。

  • POST /wp-json/wp/v2/posts 建立文章。
  • PATCH 或 POST 指定文章 ID 更新內容。
  • 先上傳 media,再把 featured_media 指向媒體 ID。
  • 用 status=draft 降低自動發布錯誤風險。

安全、限流與維護

API 管理功能要有權限控管、錯誤處理與日誌。外部系統呼叫失敗時,不應無限重試造成網站負載升高,也不應把錯誤訊息直接公開給訪客。

如果只需要公開讀取內容,可保留 GET;如果不需要外部寫入,應限制或保護管理端點。搭配 Cloudflare、Web server 規則或應用層權限都可以降低風險。

  • 記錄 API 呼叫來源、狀態碼與錯誤訊息。
  • 對寫入操作加入重試上限。
  • 不公開 Application Passwords 或 token。
  • 移除不再使用的 API 帳號與密碼。