【n8n工作流】Notion 一鍵發布 Wordpress 詳細做法教學

用 n8n 串接 Notion 與 WordPress 的完整自動化流程教學:從 Webhook 觸發、抓取與轉換內容、批次處理與上傳圖片、設定封面,到發布文章並更新 Yoast SEO 與回寫 Notion 狀態的方法

💡 雖然說裡面將整個流程都拆解成步驟,但實際的設定還是需要花蠻多時間,從建立到除錯,來來回回就花了超過十個小時

階段一:觸發與初始設定

  1. Webhook 節點
  • 這是整個自動化的「啟動按鈕」。它會產生一個獨特的網址,當 Notion 頁面有更新時,透過 Pipedream 或其他服務觸發這個網址,工作流就會開始執行。
  1. ⚙️ 配置設定 (Set 節點)

- 集中管理固定的設定值,方便未來修改。這裡我們用它來存放 WordPress 網站的網址。

- 如果未來網站換網址,只需要改這一個地方,而不用去修改後面每一個用到網址的節點。

  1. Get WP Categories (HTTP Request 節點)

-  向 WordPress 的 API 發出請求,抓取你網站上「所有」文章分類的列表(包含名稱和 ID)。

- 因為 Notion 端我們只知道分類的「名稱」,但發佈到 WordPress 時需要提供分類的「ID」。這個節點就是為了準備好這份對照表。

  1. Build Category Map (Code 節點)

-  將上一步抓回來的分類列表(一個複雜的陣列),整理成一個簡單的「分類名稱: 分類ID」對照表(JavaScript 中的物件)。

- 有了這個對案表,後面就可以快速地用 Notion 裡的分類名稱,查到它在 WordPress 對應的 ID。


階段二:抓取與轉換 Notion 內容

這個階段的目標是從 Notion 取得文章的所有資料,並轉換成 WordPress 認得的格式。

  1. Get Page (Notion 節點)

- 根據 Webhook 傳來的頁面 ID,去 Notion 抓取完整的頁面資訊,主要是讀取頁面的「屬性」(Properties),例如:標題、Slug、Meta 描述等。

  1. Get Blocks (Notion 節點)

- 根據上一步取得的頁面 ID,去 Notion 抓取頁面中「所有」的內容區塊 (Blocks),也就是文章的每一段、每一張圖、每一個標題。

  1. Content Function (Code 節點)

- 整合前面取得的所有資訊,取得標題、分類、Slug、SEO 關鍵字等,並將 Notion 的 Block 格式(例如 heading\_1bulleted\_list\_item)轉換成標準的 HTML 標籤(例如 

  • )。

    - WordPress 的文章內容是 HTML 格式,這個節點負責將 Notion 的專有格式「翻譯」成 WordPress 看得懂的 HTML。




    階段三:處理內文圖片

    這個階段的目標是自動化處理文章中所有圖片,從下載到上傳。

    1. Get IMG URL (Code 節點)

    - 讀取 Content Function 產生的 HTML 內容,用正規表達式找出裡面所有  標籤的圖片網址 (src)。

    1. Download IMG (HTTP Request 節點)

    - 將圖片下載到 n8n 的暫存空間,才能進行轉檔和上傳。

    1. Edit Image (Edit Image 節點)

    - 將下載下來的圖片進行處理。這裡我們用它來將圖片轉換成 WebP 格式,並重新命名。

    1. Upload All Images (HTTP Request 節點)

    - 將轉檔完成的 WebP 圖片,透過 WordPress API 上傳到網站的媒體庫。


    階段四:處理封面 (特色圖片)

    這個階段與階段三平行,專門處理 Notion 的封面,它將成為 WordPress 的精選圖片。

    1. Download cover (HTTP Request 節點)

    - 下載 Notion 頁面的封面 (Cover) 圖片。

    1. Upload Cover (HTTP Request 節點)

    -  將下載好的封面圖片上傳到 WordPress 媒體庫。


    階段五:組合與發佈到 WordPress

    這個階段是將所有處理好的材料(文字、圖片)組合起來,正式發佈。

    1. Merge All (Code 節點)

    - 進行最後的內容縫合。

    1. Post to WordPress (WordPress 節點)

    - 執行最終的發佈動作!它會將文章標題、處理好的 HTML 內容、分類 ID、Slug 等資訊,一次性地提交給 WordPress,建立一篇新文章。


    階段六:發佈後優化與回饋

    文章已發佈,但還需要一些收尾工作,讓整個流程完美閉環。

    1. Update Yoast SEO (HTTP Request 節點)

    - 標準的 WordPress 節點不支援更新 Yoast SEO 欄位,所以我們用一個獨立的 HTTP 請求來更新文章的 Meta 描述和焦點關鍵字。

    1. Featured image (HTTP Request 節點)

    - 將上傳的封面圖片,正式設定為文章的「精選圖片」。

    1. Update Properties (Notion 節點)

    - 工作流的最後一步,回到 Notion 更新原始頁面,讓你在 Notion 中就能清楚地看到哪些文章已經發佈,並能直接點擊連結查看,方便管理。