n8nとAIを使用してWordPressの投稿を自動化する手順

スポンサーリンク
トレンド

この記事では、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-DispositionContent-Typeを追加します
    • Content-Dispositionの値はattachment; filename="あなたの投稿タイトル.jpg"のように設定します。ファイル名にはAirTableのタイトルを動的に使用します
    • Content-Typeの値は、ダウンロードした画像のMIMEタイプ(例: image/jpeg)を動的に取得します(例: {{$node["download image"].json.data.mimeType}}
  • ボディに「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}}を設定します
    • {{WordPress投稿のID}}は、前の「WordPressへの投稿作成」ステップで作成された投稿のIDを動的に取得します(例: {{$node["WordPress"].json.id}}
  • 認証タイプは「Predefined」を選択し、WordPressの認証情報を使用します
  • ボディデータとしてJSON形式でfeatured_mediaフィールドを更新します
    • featured_mediaの値は、前の「post image」ステップでWordPressメディアライブラリに投稿された画像のIDを動的に取得します(例: {{$node["post image"].json.id}}
  • このステップにより、メディアライブラリにアップロードされた画像が、指定されたWordPressの投稿のアイキャッチ画像として設定されます

9. AirTableへのデータ更新

  • ワークフローの最後に、AirTableノードを追加し、アクションを「Create or Update a Record」に設定します
  • 正しいベースとテーブルを選択します
  • AirTableのユニークID(最初のトリガーノードから取得)をマッチングキーとして使用します
  • 以下のフィールドを更新します
    • Featured Image WordPress Image URL: 「post image」ノードから取得した画像のURL
    • Original URL: 「image from pixels」ノードから取得したPexelsのオリジナル画像URL
    • Status: 「posted」に設定
    • Post ID: WordPress投稿作成ノードから取得したWordPress投稿のID
    • Content: AIノードから取得したHTML形式のコンテンツ
    • Markdown Content: Markdownノードから取得したMarkdown形式のコンテンツ
  • これにより、AirTableのスプレッドシートが自動的に豊かになり、コンテンツや画像のURLが追加されます

これらのステップを完了し、ワークフローをアクティブ化すると、AirTableに新しいタイトルが追加されるたびに、n8nが自動的に画像を検索・ダウンロードし、AIでコンテンツを生成し、WordPressに記事として投稿し、アイキャッチ画像を添付し、最終的にすべての関連データをAirTableに送り返して更新します。一度設定すれば、あとは自動で実行される堅牢なシステムが構築できます

参照元

  1. “Brendan O’Connell. “n8n: Auto Post to WordPress with AI (FULL TUTORIAL)”. YouTube

コメント

タイトルとURLをコピーしました