WordPressコンテンツのバージョン管理とGitHubバックアップ - n8n ワークフロー

この高度なn8nワークフローを使用してWordPressコンテンツを保護します。自動バックアップのスケジュール設定、コンテンツの変更比較、新規または変更された投稿のみをGitHubにコミットします。

ワークフロープレビュー

自動化の準備はいいですか?

このn8nワークフローテンプレートをダウンロードして、今すぐ使い始めましょう。

こんな方におすすめ


  • 信頼性の高い自動コンテンツバックアップを必要とするブログ管理者。

  • バージョン履歴と復元の目的でブログコンテンツをコードとして扱うことに興味がある開発者。

  • 高度な差分ロジックと自己参照型のワークフローを示すn8nテンプレートを探しているn8nユーザー。

  • GitHubファイル管理のために堅牢なn8nワークフローを必要とするすべての人。

概要

この包括的なn8nワークフローは、投稿を指定のGitHubリポジトリにバックアップすることにより、WordPressコンテンツの整合性とバージョン履歴を確保するように設計されています。単純なバックアップソリューションとは異なり、このn8nオートメーションはコンテンツが新規または変更された場合にのみコミットを実行し、不要なコミットを防ぎ、クリーンなリポジトリ履歴を維持します。洗練されたサブワークフロー構造と、JSONコンテンツの差分比較を行うカスタムn8nノードを利用しており、n8nにおける高度な自動化機能の優れたサンプルとなっています。

仕組み

n8nワークフローは、スケジュール実行または手動実行によって動作します。


  1. トリガーと抽出: n8nトリガー(スケジュールまたは手動)がプロセスを開始します。「Get All WP Posts」n8nノードが、設定済みのWordPressサイトからすべてのコンテンツを取得します。

  2. ワークフローの反復処理: 次に「Execute Workflow」n8nノードがWordPress投稿を個別に処理します。重要となるのは、このノードが同じn8nワークフローの後半部分(サブ処理として機能)をアイテムごとに投稿データを渡しながら実行する点です。

  3. セットアップと取得: サブ処理では、まずグローバルのGitHubリポジトリ設定(Globals)を定義します。次に「Get file data」n8nノードを使用して、GitHubからその特定の投稿の既存のバックアップファイルの取得を試みます。このノードは、ファイルが存在しない可能性(つまり新規投稿である可能性)を考慮し、失敗時に処理を継続するように設定されています。

  4. コンテンツ比較: データフローは、取得したGitHubのメタデータと実際のWordPressコンテンツJSONをマージします。「isDiffOrNew」カスタムCode n8nノードが実行されます。この専門的なコードは、GitHubからのBase64コンテンツのデコード処理、信頼性の高いバイト単位の比較を保証するための両方のJSONデータのキー順序の標準化を行い、ステータス変数(github_status: "same", "different", "new")を設定します。

  5. 条件付きアクション: 「Check Status」n8nノードは、前のノードで決定された比較結果に基づいてスイッチとして機能します。

ステータスが "same" の場合、n8nワークフローはコミットをスキップします。
ステータスが "different" の場合、「Edit existing file」GitHub n8nノードが新しいコンテンツでファイルを更新します。
* ステータスが "new" の場合、「Create new file」n8nノードが初めてバックアップファイルを作成します。

この堅牢なロジックにより、n8nの実行ごとにコンテンツのバージョン管理に意味のある貢献が保証されます。

インストールガイド

この強力なn8nワークフローテンプレートをデプロイするには、次の手順に従ってください。


  1. インポート: 提供されているJSONデータをコピーし、お使いのn8nインスタンスに直接インポートします。

  2. WordPress認証情報: 「Get All WP Posts」n8nノードをWordPress API認証情報で設定します。

  3. GitHub認証情報: GitHub n8nノード(「Get file data」、「Create new file」、「Edit existing file」)の認証情報を、リポジトリへの書き込み権限を持つ個人アクセストークン(PAT)を使用して設定します。

  4. グローバルリポジトリ設定: 「Globals」n8nノード(位置 200, 120)を見つけます。ここのパラメーターを必ず編集してください。

repo.owner をあなたのGitHubユーザー名または組織名に設定します。
repo.name をバックアップリポジトリの名前に設定します。
任意:* バックアップファイルのディレクトリ構造を特定のものにしたい場合は、repo.path を調整します。

  1. スケジュール設定: 「Schedule Trigger」n8nノードを確認し、希望のバックアップ頻度に合わせて調整します。既存の設定はUTCの午後5時に毎日実行されます。

ノード詳細

Schedule Trigger / Manual Trigger: バックアッププロセスの開始となる主要なn8nトリガーとして機能し、時間指定または即時実行を可能にします。
WordPress n8n node (Get All WP Posts): 「getAll」操作を使用してWordPressサイトからすべての投稿とページを取得します。このデータが、残りのn8nワークフローのペイロードとなります。
Execute Workflow n8n node: WordPress投稿の反復処理に不可欠です。各アイテムモードで同じワークフローIDを呼び出し、単一投稿ごとのGitHubバックアップロジックを分離します。
Set n8n node (Globals): GitHubリポジトリのオーナー、名前、およびファイルパス構造の設定を一元管理し、このn8nテンプレートの保守性を向上させます。
GitHub n8n node (Get file data): アイテムIDをファイル名に使用して、特定のWordPressアイテムの既存のJSONバックアップファイルの取得を試みます。ファイルがまだ存在しないケースを処理するために、continueOnFail: true が設定されていることが重要です。
Code n8n node (isDiffOrNew): 中核となるバージョン管理ロジックを含みます。既存ファイルのBase64デコードを処理し、厳密な文字列比較を行う前にJSONオブジェクトキーを標準化して、コンテンツが「same」、「different」、「new」のいずれであるかを判断します。
Switch n8n node (Check Status): 直前のn8nノードで決定された github_status に基づいてフローをルーティングし、適切なGitHubアクション(スキップ、編集、作成)が実行されることを保証します。
GitHub n8n nodes (Create new file / Edit existing file): GitHubリポジトリで必要なファイル操作を実行し、更新ステータスを示す適切なコミットメッセージと共に、文字列化されたWordPressコンテンツJSONをコミットします。

関連するn8nワークフロー

無料

ノード: 14 ノード
更新済み: 12月 26 2025
すべて表示
作成者

特徴*