WordPress 內容版本控制與 GitHub 備份 - n8n 工作流程

使用這個進階的 n8n 工作流程來保護您的 WordPress 內容。設定自動備份、比較內容變更,並只將新增或修改過的文章提交 (commit) 到 GitHub。

工作流預覽

準備好自動化了嗎?

下載此 n8n 工作流程範本並立即開始使用。

適用對象


  • 部落格管理員,需要可靠的自動化內容備份。

  • 開發人員,有興趣將部落格內容視為程式碼來進行版本歷史紀錄與還原。

  • n8n 使用者,正在尋找能展示複雜差異邏輯和自我參照工作流程的進階 n8n 範本。

  • 任何需要強固 n8n 工作流程來進行 GitHub 檔案管理的人員。

總覽

這個完整的 n8n 工作流程旨在透過將文章備份到專用的 GitHub 儲存庫,來確保您的 WordPress 內容的完整性與版本歷史。與簡單的備份解決方案不同,這個 n8n 自動化只在內容真正新增或修改時才會提交變更,避免不必要的提交並維持乾淨的儲存庫歷史紀錄。它利用了精密的子工作流程結構,以及用於 JSON 內容差異比較的自訂 n8n 節點,是展示 n8n 內進階自動化能力的絕佳範例。

運作方式

n8n 工作流程使用排程或手動啟動來運行。


  1. 觸發與提取 (Trigger and Extraction): n8n 觸發器(排程或手動)啟動流程。'Get All WP Posts' n8n 節點會從已設定的 WordPress 網站擷取所有內容。

  2. 工作流程迭代 (Workflow Iteration): 'Execute Workflow' n8n 節點接著逐一處理每篇 WordPress 文章。關鍵在於,此節點會執行同一個 n8n 工作流程的後半段(作為子程序),逐項傳遞文章資料。

  3. 設定與擷取 (Setup and Retrieval): 子程序首先定義全域 GitHub 儲存庫設定 (Globals)。它會嘗試使用 'Get file data' n8n 節點從 GitHub 擷取該特定文章現有的備份檔案。此節點設定為失敗時繼續,以應對檔案可能不存在(即新文章)的情況。

  4. 內容比較 (Content Comparison): 資料流將擷取的 GitHub 中繼資料與實際的 WordPress 內容 JSON 合併。接著執行自訂的 'isDiffOrNew' Code n8n 節點。這段專用程式碼會處理從 GitHub 解碼 Base64 內容,並對現有及新資料的 JSON 鍵進行排序,以確保可靠的位元組級比較,並設定狀態變數 (github_status: "same", "different", 或 "new")。

  5. 條件式動作 (Conditional Action): 'Check Status' n8n 節點根據比較結果充當開關。

如果狀態為 "same",n8n 工作流程會跳過提交。
如果狀態為 "different",'Edit existing file' GitHub n8n 節點會使用新內容更新檔案。
* 如果狀態為 "new",'Create new file' GitHub n8n 節點會首次建立備份檔案。

這種強固的邏輯確保了每一次 n8n 的執行都能對您的內容版本控制做出有意義的貢獻。

安裝指南

要部署這個強大的 n8n 工作流程範本,請遵循以下步驟:


  1. 匯入 (Import): 複製提供的 JSON 資料並直接匯入您的 n8n 實例中。

  2. WordPress 憑證: 使用您的 WordPress API 憑證設定 'Get All WP Posts' n8n 節點。

  3. GitHub 憑證: 使用具有儲存庫寫入權限的個人存取代幣 (PAT) 來設定 GitHub n8n 節點的憑證('Get file data', 'Create new file', 'Edit existing file')。

  4. 全域儲存庫設定 (Global Repository Settings): 找到 'Globals' n8n 節點(位置 200, 120)。您 必須 在此編輯參數:

repo.owner 設定為您的 GitHub 使用者名稱或組織名稱。
repo.name 設定為您的備份儲存庫名稱。
選用:* 如果您希望備份檔案有特定的目錄結構,可以調整 repo.path

  1. 排程 (Schedule): 檢視並調整 'Schedule Trigger' n8n 節點,以符合您想要的備份頻率。目前的設定是每天 UTC 時間下午 5 點執行。

節點詳情

Schedule Trigger / Manual Trigger (排程觸發器 / 手動觸發器):作為啟動備份流程的主要 n8n 觸發器,允許定時或即時執行。
WordPress n8n 節點 (Get All WP Posts):使用 'getAll' 操作從 WordPress 網站擷取所有文章和頁面。這些資料構成了其餘 n8n 工作流程的資料負載 (payload)。
Execute Workflow n8n 節點:對於迭代處理 WordPress 文章至關重要。它以 'each' 項目模式呼叫相同的流程 ID,為每一篇單獨的文章隔離出 GitHub 備份邏輯。
Set n8n 節點 (Globals):集中化 GitHub 儲存庫擁有者、名稱和檔案路徑結構的設定,有助於此 n8n 範本的維護。
GitHub n8n 節點 (Get file data):嘗試擷取特定 WordPress 項目現有的 JSON 備份檔案,在檔名中使用該項目的 ID。關鍵在於,它使用 continueOnFail: true 來處理檔案尚不存在的情況。
Code n8n 節點 (isDiffOrNew):包含核心的版本控制邏輯。它會處理現有檔案的 Base64 解碼,並在執行嚴格的字串比較以判斷內容是 'same'、'different' 還是 'new' 之前,對 JSON 物件鍵進行標準化。
Switch n8n 節點 (Check Status):根據前一個 n8n 節點確定的 github_status 來路由流程,確保執行正確的 GitHub 操作(跳過、編輯或建立)。
GitHub n8n 節點 (Create new file / Edit existing file):在 GitHub 儲存庫中執行必要的檔案操作,提交字串化的 WordPress 內容 JSON,並附上指示更新狀態的相關提交訊息。

相關 n8n 工作流程

免費

節點: 14 節點
更新时间: 2025年12月26日
建立者

精選*