【n8n工作流】Notion 一鍵發布 Wordpress 詳細做法教學
用 n8n 串接 Notion 與 WordPress 的完整自動化流程教學:從 Webhook 觸發、抓取與轉換內容、批次處理與上傳圖片、設定封面,到發布文章並更新 Yoast SEO 與回寫 Notion 狀態的方法
💡 雖然說裡面將整個流程都拆解成步驟,但實際的設定還是需要花蠻多時間,從建立到除錯,來來回回就花了超過十個小時
階段一:觸發與初始設定
Webhook節點
- 這是整個自動化的「啟動按鈕」。它會產生一個獨特的網址,當 Notion 頁面有更新時,透過 Pipedream 或其他服務觸發這個網址,工作流就會開始執行。
⚙️ 配置設定(Set 節點)
- 集中管理固定的設定值,方便未來修改。這裡我們用它來存放 WordPress 網站的網址。
- 如果未來網站換網址,只需要改這一個地方,而不用去修改後面每一個用到網址的節點。
Get WP Categories(HTTP Request 節點)
- 向 WordPress 的 API 發出請求,抓取你網站上「所有」文章分類的列表(包含名稱和 ID)。
- 因為 Notion 端我們只知道分類的「名稱」,但發佈到 WordPress 時需要提供分類的「ID」。這個節點就是為了準備好這份對照表。
Build Category Map(Code 節點)
- 將上一步抓回來的分類列表(一個複雜的陣列),整理成一個簡單的「分類名稱: 分類ID」對照表(JavaScript 中的物件)。
- 有了這個對案表,後面就可以快速地用 Notion 裡的分類名稱,查到它在 WordPress 對應的 ID。
階段二:抓取與轉換 Notion 內容
這個階段的目標是從 Notion 取得文章的所有資料,並轉換成 WordPress 認得的格式。
Get Page(Notion 節點)
- 根據 Webhook 傳來的頁面 ID,去 Notion 抓取完整的頁面資訊,主要是讀取頁面的「屬性」(Properties),例如:標題、Slug、Meta 描述等。
Get Blocks(Notion 節點)
- 根據上一步取得的頁面 ID,去 Notion 抓取頁面中「所有」的內容區塊 (Blocks),也就是文章的每一段、每一張圖、每一個標題。
Content Function(Code 節點)
- 整合前面取得的所有資訊,取得標題、分類、Slug、SEO 關鍵字等,並將 Notion 的 Block 格式(例如 heading\_1, bulleted\_list\_item)轉換成標準的 HTML 標籤(例如 , )。
- WordPress 的文章內容是 HTML 格式,這個節點負責將 Notion 的專有格式「翻譯」成 WordPress 看得懂的 HTML。
階段三:處理內文圖片
這個階段的目標是自動化處理文章中所有圖片,從下載到上傳。
Get IMG URL(Code 節點)
- 讀取 Content Function 產生的 HTML 內容,用正規表達式找出裡面所有 標籤的圖片網址 (src)。
Download IMG(HTTP Request 節點)
- 將圖片下載到 n8n 的暫存空間,才能進行轉檔和上傳。
Edit Image(Edit Image 節點)
- 將下載下來的圖片進行處理。這裡我們用它來將圖片轉換成 WebP 格式,並重新命名。
Upload All Images(HTTP Request 節點)
- 將轉檔完成的 WebP 圖片,透過 WordPress API 上傳到網站的媒體庫。
階段四:處理封面 (特色圖片)
這個階段與階段三平行,專門處理 Notion 的封面,它將成為 WordPress 的精選圖片。
Download cover(HTTP Request 節點)
- 下載 Notion 頁面的封面 (Cover) 圖片。
Upload Cover(HTTP Request 節點)
- 將下載好的封面圖片上傳到 WordPress 媒體庫。
階段五:組合與發佈到 WordPress
這個階段是將所有處理好的材料(文字、圖片)組合起來,正式發佈。
Merge All(Code 節點)
- 進行最後的內容縫合。
Post to WordPress(WordPress 節點)
- 執行最終的發佈動作!它會將文章標題、處理好的 HTML 內容、分類 ID、Slug 等資訊,一次性地提交給 WordPress,建立一篇新文章。
階段六:發佈後優化與回饋
文章已發佈,但還需要一些收尾工作,讓整個流程完美閉環。
Update Yoast SEO(HTTP Request 節點)
- 標準的 WordPress 節點不支援更新 Yoast SEO 欄位,所以我們用一個獨立的 HTTP 請求來更新文章的 Meta 描述和焦點關鍵字。
Featured image(HTTP Request 節點)
- 將上傳的封面圖片,正式設定為文章的「精選圖片」。
Update Properties(Notion 節點)
- 工作流的最後一步,回到 Notion 更新原始頁面,讓你在 Notion 中就能清楚地看到哪些文章已經發佈,並能直接點擊連結查看,方便管理。