この記事では、n8nとAIを使用してWordPressの投稿を自動化する具体的な手順を解説します。この自動化ワークフローは、AirTableに入力された投稿タイトルをトリガーに、Pexelsから画像を動的に取得し、AIでコンテンツを生成し、WordPressに記事と画像を投稿し、最後にすべてのデータをAirTableに送り返してスプレッドシートを更新するものです。
特に、動的なアイキャッチ画像の処理は少し複雑ですが、このチュートリアルで詳しく解説します。このフローを構築することで、投稿タイトルを入力するだけで、コンテンツ作成、画像取得・添付、そしてデータ管理までを自動化し、より充実したスプレッドシートを構築できます。
WordPress投稿自動化ワークフローの構築手順
1. 新しいワークフローの作成とAirTableトリガーの設定
- n8nで新しいワークフローを作成します。
- AirTableトリガーノードを追加し、「On new AirTable Event」を選択します。
- AirTableのパーソナルアクセストークンを追加し、ポーリングモードを「毎分」に設定します(必要に応じて変更可能)。
- AirTableのベースとテーブルのURLをn8nに貼り付けます。
- トリガーフィールドとして「Created time」または「Last modified time」フィールドを設定します。これらのフィールドはAirTableのスキーマに存在する必要があり、これがないとトリガーは正しく機能しません。
- AirTableに新しいタイトルを入力してイベントをフェッチし、トリガーが正しく動作することを確認します。
2. Pexelsからの画像取得(HTTPノード)
- HTTPノードを追加し、名前を「image from pixels」に変更します。
- Pexels APIのドキュメントを参照し、
https://api.pexels.com/v1/search
のようなURLを使用します。 - 認証のため、PexelsのAPIキーを「Authorization」ヘッダーとして追加します。APIキーはPexelsのウェブサイトで生成できます。
- クエリパラメータとして「query」を追加し、値にAirTableの「title」を動的に渡します(例:
{{$json.fields.title}}
)。これにより、AirTableに入力された都市名に基づいて画像が検索されます。 - 「per_page」を「1」に設定して、画像は1枚のみ取得するようにします。
- 必要に応じて「orientation」(例:
portrait
またはlandscape
)などの他のクエリパラメータも追加できます。 - APIキーを何度も入力しないように、ジェネリック認証としてヘッダー認証を設定し、再利用可能な認証情報を作成することをお勧めします(例: 「Pexels API Header Auth」のようにリネームする)。
3. AIによるコンテンツ生成(Simple Chat GPTノード)
- WordPress投稿作成ステップの前に、AIノード(例: Simple Chat GPT)を追加します。
- 使用するAIモデル(例:
gpt-4o-mini
)を選択します。 - メッセージの内容をプロンプトとして入力します。例: 「WordPressブロックマークアップのみを返してください。都市名(例:
{{$json.fields.title}}
)に関する2段落の説明を記述してください。HTMLにはH2とPタグのみを含め、コメントや他のHTMLタグ、またHTMLの開始・終了バッククォートを含めないでください」。 - このステップで生成されたHTMLコンテンツを、WordPress投稿作成ノードの「Content」フィールドに動的に渡します。
4. HTMLコンテンツのMarkdownへの変換(Markdownノード)
- Markdownノードを追加します。
- 変換モードを「HTML to Markdown」に設定します。
- 入力として、AIノードで生成されたHTMLコンテンツを動的に渡します。
- このステップで、WordPressのHTMLコンテンツとは別にMarkdown形式のコンテンツを生成し、AirTableに保存できるようにします。
5. WordPressへの投稿作成
- WordPressノードを追加し、アクションを「Create Post」に設定します。
- WordPress認証情報を作成します。これはWordPressのユーザー名とアプリケーションパスワード(WordPressのログインパスワードではない)を使用します。WordPressの管理画面の「ユーザー」セクションでアプリケーションパスワードを生成し、コピーしてn8nに貼り付けます。
- WordPressのURLも入力します。
- 投稿のタイトルとして、AirTableの「title」を動的に渡します(例:
{{$json.fields.title}}
)。 - 投稿のステータスを「published」(公開済み)または「draft」(下書き)に設定します。
- AIノードで生成したコンテンツを「Content」フィールドに動的に渡します。
6. Pexelsからの画像ダウンロード(HTTPノード)
- 別のHTTPノードを追加し、名前を「download image」に変更します。
- リクエストメソッドを「GET」に設定します。
- URLとして、前の「image from pixels」ステップで取得した画像のフルURLを渡します。
- このステップで、WordPressにアップロードするための画像データ(バイナリデータ)を取得します。
7. WordPressメディアライブラリへの画像投稿(HTTPノード)
- 別のHTTPノードを追加し、名前を「post image」に変更します。
- リクエストメソッドを「POST」に設定します。
- URLとして、WordPressのREST APIエンドポイントである
あなたのドメイン/wp-json/wp/v2/media
を設定します。 - 認証タイプは「Predefined」を選択し、WordPressの認証情報を使用します。
- ヘッダーに
Content-Disposition
とContent-Type
を追加します。 - ボディに「n8n Binary Data」タイプのバイナリファイルを渡します。名前は「data」とします(「download image」ノードの出力にある「data」というバイナリファイル)。
- このステップにより、画像がWordPressのメディアライブラリにアップロードされます。
8. WordPress投稿へのアイキャッチ画像添付(HTTPノード)
- さらに別のHTTPノードを追加し、名前を「attach featured image to post」に変更します。
- リクエストメソッドを「POST」に設定します。
- URLとして、WordPressのREST APIエンドポイントである
あなたのドメイン/wp-json/wp/v2/posts/{{WordPress投稿のID}}
を設定します。 - 認証タイプは「Predefined」を選択し、WordPressの認証情報を使用します。
- ボディデータとしてJSON形式で
featured_media
フィールドを更新します。 - このステップにより、メディアライブラリにアップロードされた画像が、指定されたWordPressの投稿のアイキャッチ画像として設定されます。
9. AirTableへのデータ更新
- ワークフローの最後に、AirTableノードを追加し、アクションを「Create or Update a Record」に設定します。
- 正しいベースとテーブルを選択します。
- AirTableのユニークID(最初のトリガーノードから取得)をマッチングキーとして使用します。
- 以下のフィールドを更新します。
- これにより、AirTableのスプレッドシートが自動的に豊かになり、コンテンツや画像のURLが追加されます。
これらのステップを完了し、ワークフローをアクティブ化すると、AirTableに新しいタイトルが追加されるたびに、n8nが自動的に画像を検索・ダウンロードし、AIでコンテンツを生成し、WordPressに記事として投稿し、アイキャッチ画像を添付し、最終的にすべての関連データをAirTableに送り返して更新します。一度設定すれば、あとは自動で実行される堅牢なシステムが構築できます。
—
コメント