WordPress REST API 是什麼?讀取文章與建立草稿教學
想讓外部工具取得網站文章,或把內容存進 WordPress 草稿?從公開 GET、JSON 欄位到應用程式密碼與 POST 範例,理解文章串接的資料流向、權限與讀回方式。

想把網站文章整理進試算表,或讓外部工具把寫好的內容存成 WordPress 草稿,卻發現每次都得登入後台、逐篇複製貼上。查串接方法時,你很可能會看到 WordPress REST API:它到底怎麼讓另一個程式讀到網站資料,又該如何取得寫入權限?
WordPress REST API 是 WordPress 提供給程式使用的資料介面,外部工具可以透過網址發出請求,讀取文章、頁面或媒體,也能在取得適當權限後建立與修改內容。對網站經營者來說,理解這個介面,就能看懂自動化工具背後正在做什麼。
接下來我會先說明必要概念,再帶你讀取公開文章,最後拆解建立草稿的範例。學習重點是看懂「資料從哪裡取得、用誰的身分操作,以及如何確認已經存好」。
WordPress REST API 是什麼?讓程式讀寫網站資料的介面
WordPress REST API 把網站裡的文章、頁面、分類與媒體等資料,整理成程式可以查詢的資源。程式依指定格式送出請求,WordPress 再回傳資料或操作結果;原本透過後台按鈕完成的部分工作,就能由其他應用程式接手。WordPress 的區塊編輯器也會使用這套介面。
例如,你要做一份「網站文章標題與網址」清單,程式可以請求文章列表,再把每篇的標題與連結填進試算表。這個過程取得的是文章欄位,不需要先下載整張網頁,再從選單、廣告和正文之間找內容。來源:WordPress REST API 手冊。
API、REST、JSON 各負責哪一段?
API 是 Application Programming Interface,常譯為「應用程式介面」,用來約定程式可以使用哪些功能,以及如何交換資料。REST 是 Representational State Transfer,描述一種以資源為中心的介面設計方式;在這裡,程式會使用網址指定資源,配合 HTTP 方法表達要做的操作。
放回文章清單的例子,API 規定「可以查文章、回傳哪些欄位」;REST 的設計讓文章集合有對應路徑,並以 GET 表達讀取。JSON 則是資料交換格式,以欄位名稱與數值、文字或陣列組織內容,例如 {"id":123,"status":"publish"},程式能依欄位取出文章編號和狀態。
理解這三者後,就能把串接拆成三個問題:系統開放什麼功能、請求如何送出,以及結果如何讀取。初次使用 WordPress REST API,先掌握這些關係,就能開始看懂下面的範例。

WordPress REST API 的網址怎麼看?
WordPress REST API 常見的文章列表網址如下。範例中的 example.com 是示意網域,實際操作時換成自己的網站網址;WordPress 若安裝在子目錄,也要保留那一段安裝路徑。
https://example.com/wp-json/wp/v2/posts
其中,/wp-json/ 是常見的 REST API 入口;wp/v2 是 WordPress 核心這組 API 的命名空間,v2 指介面版本;posts 則指定文章集合。它和網站目前安裝的 WordPress 軟體版號,是兩種不同的版本資訊。
換資源時,最後的路徑也會改變:一般頁面使用 /wp/v2/pages、媒體使用 /wp/v2/media、分類使用 /wp/v2/categories。外掛與自訂文章型別則需要各自提供 REST API 支援,相關欄位與寫法要看它們實際開放的介面。
WordPress REST API 的 GET 與 POST 差在哪?
網址告訴 WordPress 要處理哪一組資料,HTTP 方法則告訴它要做什麼。讀取文章列表用 GET /wp/v2/posts,新增文章用 POST /wp/v2/posts;兩者路徑相同,操作不同,因此後者需要能建立文章的使用者身分。
若要處理單篇文章,路徑後面會加文章 ID,例如 GET /wp/v2/posts/123 讀取編號 123,POST /wp/v2/posts/123 更新該篇內容,DELETE /wp/v2/posts/123 則是刪除操作。來源:路徑與端點概念、文章端點文件。
先用 WordPress REST API 讀取公開文章
預設情況下,網站公開發布的文章可以透過 WordPress REST API 讀取;草稿與私密內容則受認證及權限控制。我們先使用公開 GET,觀察回傳資料,這一步不會建立或修改文章。
在瀏覽器開啟文章端點
把下面網址的網域換成自己的 WordPress 網站,貼到瀏覽器網址列。瀏覽器開啟網址時會送出 GET 請求;這裡用 per_page=3 只取三篇,再以 _fields 指定文章編號、標題與連結,讓第一次看到的資料容易閱讀。
https://example.com/wp-json/wp/v2/posts?per_page=3&_fields=id,title,link
網址的 ? 後面是查詢參數,多個條件用 & 連接。_fields 也能讓正式串接只取得需要的欄位,減少傳輸資料。成功時會看到 JSON;有些瀏覽器會整理成可展開的畫面,有些直接顯示文字。來源:全域參數文件。
從回傳資料找到文章
以下是簡化後的示意結果。最外層的中括號 [] 表示文章清單,每一組大括號 {} 是一篇文章;id 是文章編號,title.rendered 是處理過的標題內容,link 是文章網址。
[
{
"id": 123,
"title": {"rendered": "網站經營入門"},
"link": "https://example.com/website-intro/"
}
]
找到實際文章 ID 後,就能把列表路徑改成 /wp-json/wp/v2/posts/實際ID,讀取那一篇文章。JSON 主要交付內容與欄位,網站上的字型、欄寬與導覽等呈現,由使用資料的前台決定。接試算表時取出文字即可;接另一個網站時,則要另外處理顯示方式。
完成這一步的判斷很具體:你能在回傳結果裡找到自己網站的一篇公開文章,並對上標題與網址。接下來要讓外部程式建立草稿,就需要加入使用者認證。

透過《SEO 排名攻略學》獲得穩定的 SEO 流量與實戰經驗。
再搭配《AI SEO 流量變革》看懂 AI 搜尋趨勢,搶佔 AI 搜尋紅利。

用 Application Passwords 建立文章草稿
外部程式要透過 WordPress REST API 建稿,需要讓網站辨識使用者身分。WordPress 內建的 Application Passwords,中文常稱「應用程式密碼」,可以替某個使用者產生供串接工具使用、能個別撤銷的憑證,工具便能以這個使用者的身分提出請求。
例如,負責整理文章的工具可以使用一組名為「文章草稿工具」的應用程式密碼。工具停用時,撤銷這一組即可;你登入後台的主要密碼可以繼續使用。應用程式密碼沿用原使用者的權限,名稱裡寫「草稿」只方便辨識,真正限制可做的工作,要靠使用者能力與站台設定。
為串接工具產生專用密碼
在具備 HTTPS 的自架 WordPress 網站,登入後台,前往「使用者 → 個人資料」,找到「應用程式密碼」區域,輸入能辨識用途的名稱後產生密碼。畫面只顯示一次,應立即存入密碼管理工具,並為不同串接工具各建立一組。
權限建議從工作需求設定:只要建立自己的文章草稿,就使用具備這項能力的專用帳號。Application Passwords 沿用該使用者既有權限;若使用者擁有發布或管理能力,串接工具也可能取得相應能力。角色若經外掛調整,要依站內實際設定判斷。來源:應用程式密碼與權限、角色與能力。
應用程式密碼應只放在受控的後端或工具秘密設定中,透過 HTTPS 傳送。前端網頁程式碼與 Git 儲存庫都不適合保存憑證;任何能取得這組密碼的人,都可能以該帳號呼叫開放的介面。若找不到產生區域,先請網站管理者檢查 HTTPS 與是否停用此功能。來源:建立與管理應用程式密碼。
看懂建立草稿的請求
透過 WordPress REST API 新增文章時,請求會送到文章集合,並帶上標題、正文和狀態。下面以 Python 標準函式庫示範:使用 HTTP Basic Auth 傳送使用者名稱與應用程式密碼,將 status 明確設為 draft,讓文章存入後台草稿。
這是供閱讀與自行測試的範例,網域與使用者名稱都是佔位值。若電腦已安裝 Python 3,可以存成 create_draft.py,換成自己的 HTTPS 網址與使用者名稱,再以 python create_draft.py 執行;密碼會在執行時輸入,不寫入程式檔。每次成功執行都會新增一篇草稿。
import base64
import getpass
import json
import urllib.request
site = "https://example.com"
username = "YOUR_USERNAME"
password = getpass.getpass("Application Password: ")
token = base64.b64encode(
f"{username}:{password}".encode("utf-8")
).decode("ascii")
payload = {
"title": "REST API 草稿練習",
"content": "<p>這是一篇測試草稿。</p>",
"status": "draft"
}
request = urllib.request.Request(
f"{site}/wp-json/wp/v2/posts",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": f"Basic {token}",
"Content-Type": "application/json"
},
method="POST"
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(response.status)
print(result["id"], result["status"], result["link"])
程式裡的 payload 是送給網站的內容,Authorization 帶使用者認證,Content-Type 告訴網站資料採用 JSON。Basic Auth 裡的 Base64 是編碼,傳輸保護由 HTTPS 提供。來源:REST API 認證文件。
用文章 ID 讀回草稿
核心新增文章成功時會回傳 HTTP 201 和文章資料。先記下 id,查看 status 是否為 draft,並保存 link。草稿的網址可以用來辨識文章;實際檢查內容時,請使用有權限的帳號從後台查看,或以認證 GET 再讀一次。來源:建立文章的核心處理。
若回傳 ID 為 123,讀回路徑就是 /wp-json/wp/v2/posts/123?context=edit。程式應沿用相同認證,改以 GET 請求、不帶新增文章的資料,再核對標題、正文與狀態。這樣才能把「送出內容」和「網站確實保存內容」接起來。
若 POST 逾時、連線中斷而沒收到結果,網站可能已經建立草稿。此時先到後台依標題與時間找該篇,或用認證查詢草稿清單;查明結果後再決定是否重送,避免同一篇文章建立兩次。

文章變多或連不上時,怎麼處理?
第一次讀到文章後,常見的下一個問題是「怎麼只拿到幾篇」,或「公開文章能讀,建立草稿卻失敗」。WordPress REST API 把大量資料分頁傳回,寫入則另外檢查認證與權限,這兩件事可以分開處理。
取完整清單要逐頁讀取
WordPress REST API 常見列表預設每頁十筆,per_page 可指定每頁 1 到 100 筆,page 指定頁碼。例如 ?per_page=50&page=2 取得每頁五十筆設定下的第二頁;如果符合條件的文章有 120 篇,就需要讀取三頁。
回應標頭的 X-WP-Total 是符合查詢條件的總筆數,X-WP-TotalPages 是總頁數。程式應查看總頁數,逐頁讀完並合併,而不是把第一頁當成全站文章;瀏覽器網址列看到的通常是本文資料,標頭可透過開發者工具的網路面板,或 HTTP 工具查看。來源:分頁文件。
先看錯誤回應,再處理網址與權限
WordPress 回傳錯誤時,通常會在 JSON 裡提供 code 與 message。保留這兩個欄位與 HTTP 狀態碼,能讓管理者分辨是參數、身分、權限,還是伺服器在處理請求前就攔截了連線。
- 400:先依訊息找錯誤參數,例如每頁筆數超出上限,或送出的 JSON 格式不正確。
- 401/403:檢查使用者名稱、應用程式密碼、帳號能力,以及伺服器或代理是否保留
Authorization標頭;安全外掛也可能限制請求。 - 404:檢查網域、安裝目錄與路徑。若
/wp-json/無法開啟,可測試https://example.com/?rest_route=/wp/v2/posts,協助管理者判斷是否為固定網址重寫設定問題。
若回傳的是主機攔截頁或登入頁 HTML,就先依那一層的訊息排查。直接關閉整個 WordPress REST API,會影響依賴它的編輯器與後台功能;應讓管理者找到被擋的路徑、認證或設定,再處理對應問題。來源:官方常見問題。
自動化、MCP、無頭網站怎麼用到它?
WordPress REST API 可以接進不同工作。固定流程可以定期讀文章清單、整理報表;內容工具可以把已完成的文章送成草稿;無頭網站則讓 WordPress 管內容,另一套前台取得資料並負責呈現。前後台分開之後,版面、預覽、部署與內容更新,也需要相應設計。
若要透過 AI 對話操作網站,可以由 MCP Server 把「查文章」「建立草稿」整理成工具,再在背後呼叫 WordPress REST API。這是可能的整合架構,實際能做的工作取決於 Server 開放哪些工具與網站授權。兩者的分工可延伸閱讀 MCP 與 API 的差異。
在這類流程裡,Codex 可以協助撰寫與閱讀串接程式;ChatGPT 與 Claude 則是讀者可能操作的 AI 應用。要讓 AI 取得網站資料,應用端需要接上相應工具,WordPress 端則提供對應的資料介面與權限。
從讀到文章,走到可驗收的串接
第一次接觸 WordPress REST API,可以先完成兩個結果:在公開 GET 裡找到自己網站的一篇文章,接著看懂如何用認證 POST 建立草稿,並透過文章 ID 讀回。這兩步分別讓你掌握資料格式與寫入權限。
當你能說清楚程式把什麼內容送去哪裡、用哪個帳號操作,以及網站最後存成什麼狀態,就有基礎把重複的後台工作交給工具,也能在出錯時提供具體資訊,和管理者一起找出問題。
重點整理
使用 WordPress REST API 需要另外安裝外掛嗎?
WordPress 核心已內建 REST API,讀取一般文章、頁面和媒體等核心資源,可使用內建端點。外掛資料或自訂文章型別則要由對應程式提供 REST API 支援,認證功能也可能受網站設定限制。
WordPress REST API 可以修改 SEO 外掛設定嗎?
要看 SEO 外掛是否將對應欄位開放給 REST API,以及目前帳號是否具備操作權限。核心文章端點提供標題、正文、狀態等欄位;SEO 標題、描述或其他外掛設定,應使用該外掛正式支援的介面與參數。
別人能透過公開 API 讀到 WordPress 草稿嗎?
預設的未認證請求只能取得允許公開存取的內容。讀取草稿與私密文章需要通過認證,且使用者具備該篇內容所需的權限;網站若有自訂外掛或介面,也要依其實際設定管理存取。
WordPress.org 自架站與 WordPress.com 可以直接套用同一份串接教學嗎?
本文的網址與 Application Passwords 範例以 WordPress.org 軟體的自架或自行管理安裝為對象。WordPress.com 是託管服務,有自己的開發介面與認證文件;使用 WordPress.com 時,應依其官方文件選定 API 與認證方式,再設定實際網站的串接。



