內容上架全自動化:用 n8n 幫 WordPress 打造防呆高容錯發布流水線
☰ 目錄 table-of-contents.md
內容團隊最貴的成本往往不是寫稿,而是上架——複製貼上、調格式、傳圖片、設分類,每一篇都得重來一遍。這種重複性流程正是 n8n 最擅長吃掉的東西。這篇帶你把 WordPress 的發布過程拆成一條全自動、防呆、高容錯的流水線,讓人只負責按下「確認」。
我們都知道「內容為王」,但說實話,內容生產後的「上架」過程簡直是場災難。打開 WordPress 後台、按新增文章、複製標題、貼上內容、設定分類、上傳圖片、填寫 Alt 文字、設定 SEO 標題... 這套流程做一次還好,做一百次你會懷疑人生。尤其是當你手上有來自 Google Sheets、Airtable 或是 AI 生成的大量草稿時,人工搬運根本是不可能的任務。
之前我們聊過 n8n 結合 Google Sheets 的應用,也談過 AI 生成內容。但今天,我要帶大家深入「WordPress REST API x n8n」的工程核心。我們不只是要「把文章發出去」,而是要打造一個「包含精選圖片上傳、分類自動對應、SEO 欄位填充、錯誤重試機制」的企業級自動化流水線。這不是簡單的 Zapier 三步驟,這是給想要真正解放雙手的你準備的技術實戰。
為什麼選擇 n8n 而不是 Zapier 或 Make?
在開始寫 Workflow 之前,身為工程師的小囉嗦時間又要來了。為什麼我總是推 n8n?
- 資料隱私與自託管:你可以把 n8n 架在自己的伺服器上(Docker 跑起來!),這意味著你的 API Key、客戶資料不用經過別人的雲端。
- 節點式邏輯(Node-based Logic):n8n 的邏輯處理能力極強,你可以寫 JavaScript (Code Node) 來處理複雜的資料轉換,這點對開發者非常友善。
- 價格:如果你是自架版,基本上就是付伺服器錢而已。對於大量自動化發文的需求(例如每天幾百篇新聞聚合),Zapier 的帳單會讓你哭出來。
核心架構:自動化發文的四大關卡
很多人以為自動發文就是 Call 一個 API 把 `title` 和 `content` 丟過去就好。太天真了!如果你這樣做,你會得到一堆沒有圖片、分類亂跳、SEO 分數為零的垃圾文章。
一個成熟的 n8n 自動化流程,必須解決以下四個關卡:
- 權限驗證 (Authentication):如何安全地通過 WordPress 的大門。
- 媒體處理 (Media Handling):這是最常卡關的地方。文章的「精選圖片」不能直接給網址,必須先上傳到媒體庫拿到 ID。
- 分類與標籤 (Taxonomy Mapping):如何讓自動化流程知道「科技新聞」對應的 ID 是 `27` 而不是 `5`?
- 文章發佈與後設資料 (Post & Meta):最後才是組裝文章,並寫入 Yoast SEO 或 RankMath 的欄位。
第一關:使用 Application Passwords 進行安全驗證
千萬不要在 n8n 裡面直接用你的管理員帳號密碼登入。WordPress 5.6 之後內建了 Application Passwords,這才是正解。
進入 WP 後台 -> 使用者 -> 個人資料,滑到最下方,設定一組新的應用程式密碼。在 n8n 的 WordPress 節點或是 HTTP Request 節點中,使用 `Header Auth` 或 `Basic Auth`,使用者名稱填你的帳號,密碼填這組生成的亂碼。
第二關:精選圖片的「兩段式」上傳戰術
這是我看到最多新手工程師卡關的地方。WordPress 的 `POST /wp/v2/posts` 接口,`featured_media` 欄位只接受「媒體 ID (Integer)」,不接受圖片網址 (URL)。
所以,你的 n8n 流程必須這樣設計:
- HTTP Request (Get Image):先去抓取圖片的二進位資料 (Binary Data)。
- WordPress Node (Upload Media):將二進位資料上傳到 `/wp/v2/media` 端點。
- 取得回應:API 會回傳一個 JSON,裡面包含 `id` (例如:10452)。
- 傳遞 ID:把這個 `10452` 傳給下一個建立文章的節點。
如果你的圖片來源不穩定(例如生成的 AI 圖有時會過期),記得在 n8n 加入 Error Trigger 或 If Node 來判斷。如果圖片下載失敗,就設定一張「預設圖片」的 ID,避免整個 Workflow 報錯停止。這就是我常說的「容錯設計」。
第三關:動態分類對應 (Dynamic Categorization)
硬要把分類 ID 寫死在 n8n 裡是很危險的。如果你那天在 WordPress 後台刪除了分類重開,ID 變了,你的自動化就掛了。
比較聰明的做法是:
- 在 n8n 流程開始時,先 Call `/wp/v2/categories` 把所有分類抓下來。
- 使用 n8n 的 Merge Node 或 Code Node,將你的內容分類名稱(例如 "Tech")與 WP 的分類清單比對,動態找出 ID。
- 如果找不到對應 ID?你可以選擇「自動建立新分類」或是「歸類到未分類」。
第四關:REST API 發文與 SEO 欄位寫入
終於來到重頭戲。使用 n8n 的 WordPress 節點(或 HTTP Request)建立文章。
如果你使用 HTTP Request 節點(我個人比較喜歡,因為彈性較大),你的 JSON Body 結構大約會長這樣:
{
"title": "{{ $json.title }}",
"content": "{{ $json.content }}",
"status": "draft",
"featured_media": {{ $json.media_id }},
"categories": [{{ $json.category_id }}],
"meta": {
"_yoast_wpseo_title": "{{ $json.seo_title }}",
"_yoast_wpseo_metadesc": "{{ $json.seo_description }}"
}
}
工程師的小提醒:
看到上面的 `meta` 欄位了嗎?如果你有裝 Yoast SEO 或 RankMath,這些外掛通常會把資料存在 `post_meta` 表中。透過 REST API 更新 meta 欄位時,你需要確保你的 WordPress 已經註冊了這些 meta keys 讓 API 可以寫入,或者安裝像 "ACF to REST API" 這類的外掛來輔助。
另外,強烈建議 `status` 先設為 `draft` (草稿)。不要對自己的程式碼太有自信,先讓它跑進草稿匣,人工稍微瞄一眼再發佈,這會救你很多次。
進階技巧:防止重複發文 (Idempotency)
自動化最怕的就是「跳針」。如果你的 Trigger 是 Google Sheets 的 "New Row",通常沒問題。但如果是定時去爬蟲或抓 RSS,很容易抓到重複的內容。
在發文之前,務必加一個檢查機制:
- 拿標題去 Call `/wp/v2/posts?search=你的標題`。
- 如果回傳的陣列長度大於 0,表示文章已存在 -> 停止流程 (Do Nothing)。
- 如果回傳為空 -> 繼續發文。
這在 API 設計中稱為冪等性 (Idempotency) 的概念,確保同樣的操作執行多次,結果是一樣的(不會產生多篇垃圾文章)。
結論:自動化是為了創造價值,不是製造垃圾
學會用 n8n 自動發佈 WordPress 文章,感覺像是獲得了超能力。但 Eric 還是要語重心長地說一句:工具是中性的,內容品質才是關鍵。
你可以用這套流程來建立內容農場,也可以用它來將珍貴的數據報告自動化轉成視覺化圖表文章。希望大家能用這些技術,讓世界多一點有價值的資訊,少一點複製貼上的垃圾。
如果你對 n8n 的錯誤處理機制還不熟悉,或者想知道如何設計更嚴謹的 API 流程,強烈建議閱讀下方的延伸閱讀。
延伸閱讀
- n8n、Make、Zapier 怎麼選?2026 自動化平台完整比較
- 你的 n8n 自動化是『玻璃大砲』嗎?資深工程師的『容錯』與『重試』設計聖經,打造企業級強韌工作流
- API 亂糟糟,專案火葬場?資深工程師的 WordPress REST API 設計聖經 (REST + JSON)
- API 回傳一坨垃圾?資深工程師教你用 JSON Schema 打造 WordPress 滴水不漏的數據防火牆
你的企業內部流程還卡在 Excel 和 Email 的無盡輪迴中嗎?或者你的 WordPress 網站需要更深度的自動化整合?
別讓技術債拖垮你的業務成長。立即聯繫浪花科技,讓我們幫你打造專屬的自動化數位引擎。
👉 立即填寫表單聯繫我們常見問題
用 n8n 自動發佈 WordPress 文章時,該如何安全地通過驗證?
為什麼 WordPress 文章的精選圖片不能直接給網址,要怎麼設定?
自動化發文時分類 ID 該寫死嗎?怎麼動態對應分類?
如何避免 n8n 自動化流程重複發出同一篇文章?
用 REST API 自動發文時遇到 401 或 403 錯誤怎麼辦?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。