發文不必人工盯:n8n 把 WordPress 變成全自動內容工廠
☰ 目錄 table-of-contents.md
快速結論:n8n 怎麼自動發文到 WordPress?
要讓 n8n 自動把內容發布到 WordPress,核心只有三件事:用 WordPress 的「應用程式密碼」建立安全憑證、用觸發器(例如 Google Sheets 或排程)取得待發內容、再用 WordPress 節點或 HTTP Request 節點呼叫 REST API 建立文章。完成基本流程後,再補上分類/標籤的 ID 對應、精選圖片上傳與狀態回寫,就能形成一個不會重複發文的閉環。
本文會手把手帶你完成這條流程,並說明新手最常踩的兩個坑:分類標籤只認 ID 不認名稱、以及缺少回寫機制導致重複發布。讀完你就能自己組出一條穩定運作的自動化內容流水線。
寫程式這麼多年,我最痛恨的就是「重複」又「沒技術含量」的工作,而「手動複製貼上發文」絕對是這類工作的榜首。想像一下,你好不容易從各種來源(可能是 Google Sheets、Airtable、甚至是某個內部系統的 API)整理好了一批內容,結果還要一篇一篇登入 WordPress 後台,複製、貼上、選分類、上標籤、設定精選圖片……光想就覺得手指關節在抗議了。
身為一個有格調的工程師,我們怎麼能容忍這種低效率的工作流程?今天我就要分享一個解放生產力的神兵利器:n8n。它就像數位世界的強力膠水,可以把各種不同的服務和應用程式黏在一起,實現全自動化的工作流程。這篇文章,我會帶你用 n8n 與 WordPress 自動發文,從此告別複製貼上的惡夢,把時間花在更有價值的事情上。
為什麼選 n8n 來自動化 WordPress?
你可能會問:「Eric,市面上有 Zapier、Make 這些工具,為什麼你偏偏推薦 n8n?」問得好。Zapier 跟 Make 很棒,但它們是商業服務,當你的自動化流程一多、執行次數一頻繁,帳單就會讓你心頭一驚。n8n 的差異在於這三點:
- 開源且可自架(Self-hosted):你可以把它部署在自己的伺服器上,幾乎零成本(除了伺服器費用)就能擁有無限的工作流程和執行次數。對於控制慾強又想省錢的工程師來說近乎完美,同時資料也留在自己的環境裡,對隱私敏感的專案特別友善。
- 高度彈性與擴充性:n8n 的節點(Node)設計非常直觀,不會寫程式也能透過拖拉點選建立流程;但它的上限又很高,你可以直接在裡面寫 JavaScript 程式碼處理複雜邏輯,串接任何有 API 的服務。
- 視覺化流程:你看著資料在一個個節點之間流動,哪裡出錯一目了然。除錯起來比盯著終端機噴 log 友善多了。
當 n8n 遇上本身就擁有強大 REST API 的 WordPress,就等於打通了任督二脈。你不只能自動發文,舉凡使用者註冊同步、WooCommerce 訂單處理、留言審核通知,只要你想得到的,幾乎都能自動化。
n8n 與 Zapier、Make 的關鍵差異是什麼?
一句話總結:Zapier 與 Make 按執行次數計費、開箱即用;n8n 開源可自架、執行次數不另外收費,但你要自己負責部署與維運。如果你的自動化任務頻率高、數量大,或對資料落點有要求,n8n 的彈性與長期成本優勢會很明顯;如果你只是偶爾跑幾個簡單流程、不想碰伺服器,商業服務反而更省事。沒有絕對的好壞,只有適不適合你的場景。
動手前的準備:先把地基打穩
俗話說「工欲善其事,必先利其器」。在一頭栽進 n8n 之前,有些準備工作得先做好。地基打得穩,後面的路才好走,不然流程跑不起來,回頭找問題會找到想砸鍵盤。
WordPress 端:為什麼要用「應用程式密碼」?
我們總不可能把 WordPress 管理員的帳號密碼直接寫在 n8n 裡吧?這太危險了。萬一 n8n 伺服器被入侵,你的整個網站就門戶大開。WordPress 提供了更安全的方式:「應用程式密碼(Application Passwords)」。它的好處是權限可隨時在後台單獨撤銷、不影響你本人的登入密碼,而且只用於 API 操作。設定步驟如下:
- 登入你的 WordPress 後台。
- 進入「使用者」>「個人資料」。
- 往下拉找到「應用程式密碼」區塊。
- 在「新應用程式密碼名稱」欄位輸入一個好記的名字,例如
n8n_poster。 - 點擊「新增應用程式密碼」。
- WordPress 會產生一組格式為
xxxx xxxx xxxx xxxx xxxx xxxx的密碼。請立刻複製並妥善保存,因為這個畫面關掉後就再也看不到了。
這組密碼就是 n8n 專用的鑰匙,只能用來操作 API,隨時可在後台撤銷,比直接用登入密碼安全得多。網站安全是基本功,千萬別輕忽,不然就像網站大門忘了鎖一樣,後果不堪設想。
小提醒:應用程式密碼依賴 REST API 與 HTTPS。請確認你的站台是 https,並且 REST API 沒有被安全外掛整個封鎖,否則 n8n 會連不上。
資料來源:你的內容彈藥庫
自動發文也得有內容來源。今天我們用最常見的 Google Sheets 當作範例。請先準備一個 Google Sheet,並建立以下欄位:
title(文章標題)content(文章內容,可以是 HTML 格式)status(文章狀態,例如publish或draft)category(文章分類名稱)tags(文章標籤,多個請用逗號分隔)processed(處理狀態,用來標記是否已發布)
這裡特別建議保留 status 欄位:剛上線流程時先讓所有文章以 draft(草稿)發布,人工確認排版與分類都正確後,再改成 publish。這個小習慣能避免把錯誤內容直接推上正式站。
實戰開工:一步步打造 n8n 自動發文工作流
準備工作完成,讓我們打開 n8n,開始打造自動化內容工廠。整條流程的骨架是:讀取資料 → 建立文章 → 處理分類標籤 → 回寫狀態。
步驟一:觸發器 — 從 Google Sheets 讀取新內容
每個 n8n workflow 都需要一個觸發器(Trigger)。我們希望 n8n 定期去檢查 Google Sheets 有沒有新文章要發。
- 在 n8n 畫布上點擊「+」新增節點,搜尋「Google Sheets」。
- 在「Authentication」中授權 n8n 存取你的 Google 帳號。
- Resource:選擇
Sheet。 - Operation:選擇
Read。 - Sheet ID:填入你的 Google Sheet ID(就是網址列
.../d/和/edit之間那段字串)。 - Range:填入工作表名稱,例如
Sheet1。 - 設定篩選條件,只讀取
processed欄位是空白的資料列。 - 最後在 workflow 的 Settings 中設定排程(Schedule),例如每小時執行一次。
為什麼要先過濾 processed 為空白的列?因為這是避免重複發文的第一道防線:已經處理過的列會被標記,下一輪就不會再被讀進來。
步驟二:核心步驟 — 連接 WordPress 並發布文章
現在我們拿到資料了,該把它送到 WordPress。
- 新增一個「WordPress」節點。
- 在「Credential for WordPress API」中點擊「Create New」。
- Base URL:填入你的網站網址,例如
https://yourdomain.com。 - Username:填入你的 WordPress 使用者名稱。
- Application Password:貼上剛剛產生的那組應用程式密碼。
- 儲存憑證。
- Resource:選擇
Post。 - Operation:選擇
Create。 - 接著進行最有趣的「資料對應」,把上一個 Google Sheets 節點的資料拖拉到對應欄位:
- Title:
{{ $json.title }} - Content:
{{ $json.content }} - Status:
{{ $json.status }}
做到這一步,你的基本自動發文流程已經完成。點擊「Execute Workflow」測試一下,應該就能在 WordPress 後台看到新文章了。
步驟三:進階處理 — 分類與標籤為什麼上不去?
「等等,Eric!我的分類跟標籤怎麼沒上去?」這是新手最常踩的坑。原因是:如果你直接把分類「名稱」丟給 WordPress API,它是不認得的。REST API 只認得分類的 ID(Category ID)和標籤的 ID(Tag ID),而不是中文名稱。
所以我們得在發布前先去問 WordPress:「請問『技術教學』這個分類的 ID 是多少?」這裡有兩種做法:
- 簡單暴力法:先在後台手動查好常用分類/標籤的 ID,然後在 n8n 中用
IF或Switch節點做判斷。如果分類數量少,這招還行。 - 工程師優雅法(動態查詢):
- 在 WordPress 節點前新增一個「HTTP Request」節點。
- 設定
GETrequest 到https://yourdomain.com/wp-json/wp/v2/categories?search=技術教學。 - API 會回傳包含 ID 的分類資訊。
- 再用一個
Set節點把 ID 取出來,傳給後面的 WordPress 節點。 - 標籤同理,只是 API 端點換成
/wp-json/wp/v2/tags。
動態查詢才是真正強健的作法:不管你未來新增多少分類,流程都不用改。這裡有個實務細節值得注意——若查詢的分類「還不存在」,categories 端點會回傳空陣列。你可以在流程裡加一個判斷:查不到就先用 POST 建立該分類、拿到新的 ID,再往下走,這樣連「分類不存在」的情況都能自動處理。
步驟四:畫下句點 — 回寫 Google Sheet 狀態
文章發布成功後,我們得回去 Google Sheet 做個記號,免得下次重複發布。這一步很重要,否則你的網站會充滿一模一樣的文章,對 SEO 是一場災難。
- 在 WordPress 節點後再新增一個「Google Sheets」節點。
- 這次的 Operation 選擇
Update。 - Sheet ID 和 Range 照舊。
- 在 Key 欄位用
title當作搜尋依據,定位要更新的那一列。 - 把
processed欄位填入done,或當前時間{{ new Date().toISOString() }}。
這樣就形成一個完美的閉環(Closed Loop):讀取未處理的列 → 發布 → 標記為已處理。下一輪排程啟動時,已處理的列被過濾掉,自然不會重複發文。
更上一層樓:精選圖片與自訂欄位(ACF)怎麼處理?
只發布文字也太單調了。要處理精選圖片或 ACF 這類自訂欄位,單純用內建的 WordPress 節點就不夠力,我們需要祭出大殺器:「HTTP Request」節點,直接跟 REST API 對話。
上傳並設定精選圖片
這需要兩步,先傳圖、再用回傳的 ID 綁到文章上:
- 上傳圖片:新增一個 HTTP Request 節點,用
POST方法把圖片檔案傳送到/wp-json/wp/v2/media。記得在 Header 設定Content-Disposition(用來告訴 WordPress 這個上傳檔案的檔名)。成功後 API 會回傳這張圖片的 Media ID。 - 建立文章:再用一個 HTTP Request 節點
POST到/wp-json/wp/v2/posts,這次在 JSON body 中除了 title、content 之外,多帶一個featured_media欄位,值就是上一步拿到的 Media ID。
順序不能反:一定要先有 Media ID,才能在建立文章時把它指定為精選圖片。這也是為什麼這裡要拆成兩個節點,而不是一次送出。
更新 ACF 自訂欄位
如果你有使用 ACF,更新欄位也很簡單。在建立文章的 POST request 的 JSON body 中,加入一個 meta 或 acf 的 key,裡面再包含你的欄位名稱和值。
例如,要更新一個叫做 source_url 的 ACF 欄位:
{
"title": "我的自動化文章",
"content": "這是內文...",
"status": "publish",
"acf": {
"source_url": "https://example.com/original-article"
}
}
看吧!一旦理解了 WordPress REST API 的運作原理,搭配 n8n,幾乎沒有什麼是不能自動化的。要走得更深,建議花點時間搞懂 REST API 的端點與資料結構,這部分可以參考我們的 REST API 自訂端點教學。
除錯與穩定運行:別讓流程半夜悄悄掛掉
自動化流程最怕的不是「跑不起來」,而是「以為在跑、其實早就掛了」。把以下幾個點顧好,能省下大量回頭排查的時間:
- 先用草稿測試:上線初期把
status設為draft,確認排版、分類、精選圖片都正確後再切成publish。 - 小批量驗證:第一次跑時 Sheet 裡只放一兩列資料,確認整條流程通了再放量。
- 善用視覺化除錯:n8n 每個節點都能看到輸入與輸出的實際資料,哪一步的欄位對應錯了一眼就看得出來,這正是 n8n 相較於純命令列腳本的優勢。
- 守住回寫機制:回寫
processed是防重複發文的命脈。若發布成功但回寫失敗,下一輪就會重發,務必確認這一步穩定。 - 注意 API 的速率限制:當你一次塞入大量資料、或外部來源頻繁呼叫時,可能會撞到 Rate Limit 而被擋。設計流程時加入合理的間隔與重試邏輯,能讓串接更耐用。
結論:把時間花在更有價值的事情上
今天我們從零到一,建立了一個從 Google Sheets 讀取資料並自動發布到 WordPress 的完整工作流程。我們不只完成了基本發布,還處理了分類、標籤、精選圖片與回寫狀態等進階操作。這套流程不僅能省下大把時間,更能確保內容發布的一致性與準確性。
而這只是 n8n 與 WordPress 自動發文 的冰山一角。你可以把資料來源換成 RSS Feed、Airtable、Notion,甚至用 AI 自動生成內容再發布。自動化的世界充滿無限可能,而 n8n 就是你探索這個世界的最佳夥伴。
當然,如果你遇到的自動化需求更複雜,例如需要串接公司的 ERP 系統、處理複雜的 WooCommerce 訂單邏輯,或打造企業級的自動化數據流,這可能就需要更深入的技術規劃。別擔心,這正是我們浪花科技的專長!
如果你的團隊正在尋求更高效、更智慧的網站運營方式,或想將 WordPress 與各種內部系統無縫整合,歡迎點擊這裡,填寫表單與我們聊聊。讓我們用技術,為你打造真正能解決問題的自動化解決方案。
延伸閱讀
常見問題
用 n8n 自動發文到 WordPress 的核心步驟有哪些?
為什麼 n8n 發文時分類和標籤上不去?
n8n 自動發文要怎麼避免同一篇文章被重複發布?
n8n 動態查詢分類 ID 時,遇到分類還不存在怎麼辦?
n8n 串接 WordPress 前需要確認哪些站台條件?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。