n8nでWordPressへ下書きを自動入稿する方法|初心者向け

n8nでWordPressの記事を自動投稿するとき、

  • タイトルはどうやって入れるの?
  • 本文はどこに渡すの?
  • カテゴリはどうやって指定するの?

と迷うことがあります。

でも考え方はシンプルです。

WordPressの記事には、

  • タイトル
  • 本文
  • カテゴリ

それぞれに入れる場所があります。

n8nでは、前のノードから受け取ったデータをWordPressへ渡すことで、自動設定できます。

この記事では、

  • n8nでWordPress記事のタイトルを自動設定する方法
  • 本文を自動設定する方法
  • カテゴリを自動設定する方法
  • カテゴリIDとは何か
  • 初心者がつまずきやすいポイント

まで、中学生でもわかるようにやさしく解説します。

今回作る自動化

今回の完成イメージは次の通りです。

  1. Google Sheets
  2. タイトル取得
  3. 本文取得
  4. カテゴリ取得
  5. 必要ならカテゴリIDへ変換
  6. WordPress
  7. 下書き保存

たとえばGoogleスプレッドシートに、

  • タイトル:
    n8nとは?初心者向けにやさしく解説
  • 本文:
    記事本文
  • カテゴリ:
    n8n

と入れておきます。

n8nがこの3つを取得し、WordPressの記事へ自動で設定します。

WordPressでは何を送るの?

WordPressのREST APIでは、投稿を作成するときに、

  • title
  • content
  • categories
  • status

などを送れます。

簡単に言うと、

title=記事タイトル

content=記事本文

categories=カテゴリ

status=公開状態

です。

WordPress公式の投稿APIでも、投稿作成時にtitle、content、categories、statusなどを指定できるようになっています。

titleとは?

titleは記事タイトルです。

たとえば、

n8nでWordPressを自動化する方法

という記事タイトルなら、

title=n8nでWordPressを自動化する方法

と設定します。

n8nでは、Google SheetsやOpenAIなど前のノードから取得したタイトルをWordPressへ渡せます。

contentとは?

contentは記事本文です。

たとえば、

<h2>n8nとは?</h2>
<p>n8nは自動化ツールです。</p>

のようなHTMLを送ることもできます。

WordPressへ本文を送る場合は、

content

へ記事本文を設定します。

categoriesとは?

categoriesは、記事に設定するカテゴリです。

ここで注意したいのが、

カテゴリ名ではなく、カテゴリIDを使う

という点です。

たとえばWordPressに、

  • n8n
  • ChatGPT
  • WordPress
  • AI自動化

というカテゴリがあるとします。

それぞれ、

n8n=2

ChatGPT=3

WordPress=4

AI自動化=5

というIDを持っている場合があります。

WordPress公式のREST APIでも、categoriesは投稿に割り当てるカテゴリのIDとして扱われます。

カテゴリIDとは?

カテゴリIDは、

「WordPressがカテゴリを見分けるための番号」

です。

学校の出席番号のようなものだと思うとわかりやすいです。

たとえば、

n8nという名前のカテゴリでも、

IDは2

になっている場合があります。

WordPressは、

「n8nという文字」ではなく、

「カテゴリID 2」

を使って記事へカテゴリを設定します。

カテゴリIDはサイトごとに違う

ここはとても重要です。

ネットの記事で、

n8n=2

と書いてあっても、自分のサイトで同じとは限りません。

自分のサイトでは、

n8n=7

かもしれません。

カテゴリIDは、そのWordPressサイトごとに違います。

必ず自分のサイトのIDを確認してください。

WordPressのカテゴリIDを確認する方法

WordPress管理画面から、

投稿
↓
カテゴリー

を開きます。

対象カテゴリへマウスを合わせたり、編集画面を開くと、URLの中に、

tag_ID=2

のような数字が表示されることがあります。

この数字がカテゴリIDです。

たとえば、

tag_ID=5

なら、

カテゴリIDは5

です。

REST APIからカテゴリ一覧を見る方法

WordPress REST APIでは、

/wp-json/wp/v2/categories

からカテゴリ一覧を取得できます。

WordPress公式では、

GET /wp/v2/categories

でカテゴリ一覧を取得できると案内されています。

取得結果には、

  • id
  • name
  • slug

などが含まれます。

たとえば

{
  "id": 2,
  "name": "n8n",
  "slug": "n8n"
}

のようなデータです。

この場合、

n8nカテゴリのID=2

です。

Google Sheetsで記事データを管理する

初心者には、Googleスプレッドシートで記事を管理する方法がわかりやすいです。

たとえば、

  • A列 タイトル
  • B列 本文
  • C列 カテゴリ
  • D列 入稿ステータス

とします。

例:

  • タイトル
    n8n初心者向け解説
  • 本文
    記事本文
  • カテゴリ
    n8n
  • 入稿ステータス
    入稿待ち

これをn8nで取得します。

Google Sheetsノードでデータを取得する

n8nでGoogle Sheetsノードを追加します。

そして対象のスプレッドシートを指定します。

入稿ステータスが、

入稿待ち

の記事だけ取得する設定にすると便利です。

Google Sheetsノードを実行し、

OUTPUTに、

  • タイトル
  • 本文
  • カテゴリ

が表示されれば準備OKです。

タイトルをWordPressへ渡す

次にWordPressノードを追加します。

WordPressの記事作成で、

Title

にGoogle Sheetsのタイトルを指定します。

Expressionを使うなら、

{{ $json["タイトル"] }}

のような形です。

意味は、

「今のデータにあるタイトルを使う」

です。

Expressionを自分で書かなくてもいい

n8nでは前のノードのOUTPUTから、

タイトル

をドラッグしてWordPressのTitle欄へ入れられる場合があります。

するとn8nがExpressionを作ってくれます。

初心者なら、

Expressionを全部暗記する

より、

前のデータを次の入力欄へドラッグする

ところから始めても大丈夫です。

本文をWordPressへ渡す

本文も同じです。

WordPressノードのContentへ、

Google Sheetsの本文

を指定します。

Expressionなら、

{{ $json["本文"] }}

のようになります。

これで、

Google Sheets
↓
本文
↓
WordPress Content

という流れになります。

WordPressへ送る本文はHTMLがおすすめ

ChatGPTなどで記事を作ると、

## 見出し

### 小見出し

**太字**

などのMarkdownが使われる場合があります。

そのままWordPressへ送ると、

##

や、

**

が文字として表示されることがあります。

そのため、

Markdown
↓
HTMLへ変換
↓
WordPressへ送る

という流れがおすすめです。

HTMLの例

たとえば、

## n8nとは?

という見出しなら、

<h2>n8nとは?</h2>

へ変換します。

通常本文は、

<p>n8nは自動化ツールです。</p>

のようにします。

WordPressへHTMLとして渡せば、見出しや段落を整えやすくなります。

OpenAIでHTML整形する方法

OpenAIノードを使って、

「記事内容は変更せず、WordPress用HTMLへ変換してください」

と指示することもできます。

たとえば、

Google Sheets
↓
OpenAI
↓
HTML整形
↓
WordPress

という流れです。

このとき、

  • 内容を変更しない
  • 要約しない
  • 追記しない
  • 削除しない
  • URLを書き換えない

という条件を入れておくのがおすすめです。

カテゴリ名をそのままWordPressへ送らない

ここは初心者がよく間違えるポイントです。

Google Sheetsに、

n8n

と入っていても、そのままcategoriesへ送って動くとは限りません。

WordPressのcategoriesでは、

カテゴリID

を使います。

つまり、

n8n
↓
2

へ変換する必要があります。

カテゴリ名をIDへ変換する

たとえば自分のサイトで、

n8n=2

ChatGPT=3

WordPress=4

AI自動化=5

だったとします。

n8nでは、

カテゴリ名
↓
カテゴリID

へ変換できます。

方法はいくつかあります。

初心者なら、

  • Expression
  • Edit Fields
  • Codeノード

などで変換できます。

ExpressionでカテゴリIDへ変換する例

{{ 
  ({
    'n8n': 2,
    'ChatGPT': 3,
    'WordPress': 4,
    'AI自動化': 5
  })[$json["カテゴリ"]] || 1
}}

のようなExpressionを使えます。

意味は、

カテゴリがn8nなら2

ChatGPTなら3

WordPressなら4

AI自動化なら5

それ以外なら1

です。

少しコードっぽく見えますが、

「カテゴリ名と数字の対応表」

を作っているだけです。

初心者は対応表だと考える

たとえば学校で、

国語=1

数学=2

英語=3

という番号表を作るのと同じです。

n8nでは、

n8n=2

ChatGPT=3

という表を作り、WordPressへ渡す数字を決めます。

デフォルトの1には注意

先ほどのExpressionでは、

|| 1

という部分があります。

これは、

「どのカテゴリにも当てはまらなければ1を使う」

という意味です。

ただしカテゴリID 1が何のカテゴリなのかは、サイトによって確認する必要があります。

WordPressでは初期状態で「未分類」がID 1になっていることが多いですが、変更されている可能性もあります。

自分のサイトで確認してください。

categoriesは配列で扱われる

WordPress REST APIでは、categoriesは複数のカテゴリIDを持てる項目です。

たとえば、

[2]

なら、

カテゴリID 2を設定

という意味です。

さらに、

[2, 5]

なら、

カテゴリID 2と5

の両方を記事に設定する形です。

WordPress公式のPosts APIでも、categoriesはカテゴリタクソノミーに割り当てる項目として配列で扱われています。

1記事に複数カテゴリを設定することもできる

たとえば、

n8n+AI自動化

の2つを設定したい場合、

[2, 5]

のように指定できます。

ただしSEOやサイト構造の面では、カテゴリを増やしすぎると管理しにくくなる場合があります。

記事ごとに、

主なカテゴリを1つ

くらいに決める方がわかりやすいサイトも多いです。

WordPressノードでカテゴリを設定する

n8nのWordPressノードでカテゴリ項目が利用できる場合は、

カテゴリID

を指定します。

たとえば、

2

です。

複数カテゴリを設定する場合は、ノードの入力方式に合わせて複数のIDを渡します。

n8nのバージョンやWordPressノードの画面によって表示が変わる場合があるため、実際の入力欄を確認してください。

HTTP Requestで記事を作る方法もある

WordPress専用ノードではなく、HTTP RequestノードからREST APIへ直接送る方法もあります。

投稿作成URLは、

https://example.com/wp-json/wp/v2/posts

です。

WordPress公式では、

POST /wp/v2/posts

で新しい投稿を作成できます。

たとえばBodyを、

{
  "title": "n8n初心者向け解説",
  "content": "

記事本文

", "status": "draft", "categories": [2] }

のようにします。

このJSONは何を意味している?

先ほどの例は、

タイトル=n8n初心者向け解説

本文=記事本文

状態=下書き

カテゴリ=ID 2

という意味です。

つまり、

WordPressの記事編集画面で人間が設定していた内容を、APIでまとめて送っています。

statusはdraftがおすすめ

WordPressでは投稿状態として、

  • publish
  • draft
  • pending
  • private

などがあります。

WordPress公式のREST APIでも、投稿作成時にstatusを指定できます。

初心者なら、

draft

がおすすめです。

draftは、

下書き

です。

n8nで自動投稿したあと、

WordPressで内容確認
↓
人間が公開

という流れにできます。

なぜ最初からpublishにしないの?

AIや自動化では、

本文が空

カテゴリが違う

HTMLが崩れている

リンクがおかしい

といったミスが起こる可能性があります。

最初からpublishにすると、そのまま公開されてしまいます。

まずは、

draft
↓
確認
↓
公開

が安全です。

OpenAIでタイトルを作る場合

タイトルをGoogle Sheetsに用意せず、

OpenAIに作ってもらう

方法もあります。

たとえば、

Google Sheets
↓
テーマ取得
↓
OpenAI
↓
タイトル生成
↓
WordPress

です。

OpenAIの結果をWordPressのtitleへ渡します。

OpenAIでカテゴリを判定する場合

カテゴリもAIに判定してもらえます。

たとえば、

この記事を次のカテゴリから1つ選んでください。

  • n8n
  • ChatGPT
  • WordPress
  • AI自動化

という指示です。

AIが、

n8n

と返したら、

Expressionで、

n8n↓カテゴリID 2

へ変換します。

そしてWordPressへ送ります。

AIにはカテゴリ名だけ返してもらう

カテゴリ判定をAIに任せる場合は、

余計な文章を返さない

ようにすると扱いやすいです。

たとえば、

「カテゴリ名だけを1つ出力してください」

と指定します。

AIが、

この記事はn8nカテゴリがおすすめです。

と返すより、

n8n

だけ返した方がn8nで処理しやすいからです。

JSONで出力してもらう方法もある

OpenAIへ、

{
  "title": "",
  "category": ""
}

という形で返してください

と指示する方法もあります。

たとえば、

{
  "title": "n8n初心者向け解説",
  "category": "n8n"
}

です。

この形式なら、

title

category

を別々に取り出しやすくなります。

投稿後のPost IDも保存する

WordPressへ記事を作成すると、

id

が返ってきます。

これがPost IDです。

たとえば、

id:845

なら、

WordPress記事のIDは845

です。

このIDをGoogle Sheetsへ保存しておくと、

  • あとで記事更新
  • アイキャッチ設定
  • 投稿状況確認

などに使えます。

Google Sheetsへ結果を書き戻す

記事投稿後は、

Google Sheets
↓
Update Row

などを使って、

  • 入稿ステータス=完了
  • WP投稿済み=済
  • Post ID=845

のように更新できます。

これで、

どの記事が投稿済みか

一覧で確認できます。

よくある失敗1:カテゴリ名をcategoriesへ入れている

たとえば、

categories=n8n

としてしまうケースです。

基本的には、

カテゴリID

を使います。

たとえば、

categories=[2]

です。

カテゴリ名とIDを混同しないようにしましょう。

よくある失敗2:他人のカテゴリIDをそのまま使う

ネットの記事に、

WordPressカテゴリID 2

と書いてあっても、自分のサイトでは違う可能性があります。

カテゴリIDは必ず自分のWordPressで確認してください。

よくある失敗3:タイトルが空になる

WordPress側だけを見るのではなく、

前のノードのOUTPUT

を確認しましょう。

OpenAIがタイトルを返していない

Expressionの項目名が違う

Google Sheetsの列名が違う

といった原因があります。

よくある失敗4:本文がMarkdownのまま

WordPressへ、

## 見出し

がそのまま表示されている場合は、HTML変換ができていない可能性があります。

WordPressへ送る前に、

h2
h3
p
ul
li
strong

などのHTMLへ変換すると整えやすくなります。

よくある失敗5:カテゴリが未分類になる

カテゴリIDが正しく渡っていないと、意図したカテゴリにならない場合があります。

確認するポイントは、

  • カテゴリIDが正しいか
  • Expressionの結果が数字になっているか
  • categoriesへ正しく渡っているか

よくある失敗6:数字ではなく文字になっている

カテゴリIDは数字として扱う必要がある場面があります。

たとえば、

2

と、

“2”

ではデータの種類が違います。

見た目は同じですが、

2=数字

“2”=文字

です。

n8nでエラーになる場合はデータ型も確認しましょう。

よくある失敗7:自動投稿で重複する

WordPressへの投稿は成功したのに、

Google Sheets更新

が失敗することがあります。

するとシート上では、

入稿待ち

のままになります。

再実行すると、同じ記事がもう一度投稿される可能性があります。

対策として、

入稿待ち
↓
処理中
↓
完了

というステータスを使う方法があります。

まずタイトルだけでテストする

初心者は、一気に全部設定しない方がわかりやすいです。

まず、

タイトルだけ

WordPressへ送ります。

成功したら、

本文を追加

します。

さらに成功したら、

カテゴリを追加

します。

おすすめは、

  1. タイトル
  2. 本文
  3. カテゴリ

の順番です。

1ノードずつOUTPUTを確認する

n8nでは、

Google Sheets
↓
OpenAI
↓
WordPress

を一気に作るより、

Google Sheetsを実行
↓
OUTPUT確認

OpenAIを実行
↓
OUTPUT確認

WordPressを実行
↓
結果確認

という流れが安全です。

どこで問題が起きたのかすぐ見つけられます。

実際のおすすめ構成

ブログ記事を半自動入稿するなら、

  1. Google Sheets
  2. OpenAI タイトル・本文生成
  3. OpenAI HTML整形
  4. Edit Fields カテゴリIDなど整理
  5. WordPress 下書き作成
  6. Google Sheets 完了更新

という構成がわかりやすいです。

Edit Fieldsを途中に入れると整理しやすい

Edit Fieldsノードを使って、

WPタイトル

WP本文

WPカテゴリID

という形に整理しておく方法もあります。

するとWordPressノードでは、

WPタイトル↓Title

WP本文↓Content

WPカテゴリID↓Categories

と対応させやすくなります。

WordPress自動入稿の基本はこの3つ

初心者なら、まずこの3項目が自動設定できれば十分です。

  • タイトル
  • 本文
  • カテゴリ

これだけで、

記事を開く
タイトルをコピー
本文をコピー
カテゴリを選ぶ
下書き保存

という入稿作業のかなりの部分を減らせます。

さらに自動化できるもの

タイトル・本文・カテゴリができたら、

  • アイキャッチ画像
  • タグ
  • 抜粋文
  • スラッグ
  • 投稿ステータス

なども自動化できます。

WordPress REST APIでは、投稿作成時にfeatured_media、tags、slug、excerptなども設定できます。

最初から全部作る必要はありません。

基本が動いてから1つずつ追加する方が安全です。

ココナラのn8nテンプレートについて

私は、

「ChatGPTで作った記事をWordPressへ半自動入稿するn8nテンプレート Lite」

をココナラで公開しています。

Googleスプレッドシートで記事を管理し、

n8n
↓
WordPress

へ下書き入稿するための構成をベースにしています。

今回の記事で説明した、

  • タイトル
  • 本文
  • カテゴリ

の設定は、WordPress自動入稿の中心になる部分です。

自分でゼロから作りながら学びたい場合は、この記事を参考に組んでみるのがおすすめです。

一方、

  • 完成済みのワークフローを見ながら覚えたい
  • 最初からノードを組む時間を減らしたい
  • WordPress入稿の仕組みをすぐ試したい

という場合は、テンプレートを使う方法もあります。

テンプレートでも自分の環境への設定は必要

テンプレートを読み込めば、

何もしなくても動く

わけではありません。

自分の環境に合わせて、

  • Google Sheets
  • WordPress Credential
  • サイトURL
  • カテゴリID
  • OpenAI API

などを設定する必要があります。

特にカテゴリIDはサイトごとに違うため、自分のWordPressのIDへ変更する必要があります。

初心者はこの順番で作ろう

おすすめは次の順番です。

  1. Google Sheetsからタイトルを取得する
  2. WordPressへタイトルだけ下書き投稿する
  3. 本文を追加する
  4. HTML表示を確認する
  5. 自分のカテゴリIDを調べる
  6. カテゴリを追加する
  7. 投稿後のPost IDを確認する
  8. Google Sheetsを完了に更新する
  9. 必要ならOpenAIを追加する
  10. 最後に画像やタグを追加する

この順番なら、エラー原因を見つけやすくなります。

まとめ

n8nを使うと、WordPress記事の、

  • タイトル
  • 本文
  • カテゴリ

を自動設定できます。

基本は、

title=タイトル

content=本文

categories=カテゴリID

です。

特にカテゴリでは、

カテゴリ名ではなくIDを使う

という点を覚えておきましょう。

たとえば、

n8n
↓
カテゴリID 2

というように変換します。

基本の流れは、

Google Sheets
↓
タイトル・本文・カテゴリ取得
↓
カテゴリIDへ変換
↓
WordPress
↓
下書き作成

です。

これだけでも、WordPressへの入稿作業をかなり減らせます。

初心者なら、

タイトル
↓
本文
↓
カテゴリ

と1つずつ追加しながら動作確認するのがおすすめです。

タイトル・本文・カテゴリまで自動化できたら、

アイキャッチ画像

タグ

抜粋

スラッグ

などへ少しずつ自動化を広げていきましょう。

注意事項

n8nやWordPressはアップデートによって、ノード名、入力欄、設定方法などが変更される場合があります。

この記事では執筆時点のWordPress公式REST APIを基準に、基本的な仕組みを解説しています。

カテゴリIDはサイトごとに異なります。他サイトの記事に掲載されているIDをそのまま使わず、自分のWordPressサイトで確認してください。

WordPressへ自動投稿する場合は、最初からpublishではなくdraftでテストすることをおすすめします。

AIでタイトルや本文、カテゴリを生成・判定する場合は、誤った内容が含まれる可能性があります。公開前に人間が確認してください。

本番サイトで大量投稿する前に、テスト記事1件でタイトル、本文、カテゴリが正しく設定されることを確認してください。

参考・公式情報

  • ・WordPress Developer Resources「Posts – REST API Handbook」
  • ・WordPress Developer Resources「Categories – REST API Handbook」
  • ・WordPress Developer Resources「REST API Reference」
  • ・n8n公式ドキュメント
  • ・n8n公式ドキュメント「WordPress」
  • ・n8n公式ドキュメント「Expressions」
  • ・n8n公式ドキュメント「Edit Fields」

WordPressやn8nは継続的に更新されているため、実際の設定画面と異なる場合は各サービスの最新公式ドキュメントも確認してください。

次に読む記事

自分で組み立てる時間を減らしたい方へ

この記事の手順を自分で試す方法に加え、設定の土台として使える販売テンプレートも用意しています。

ご自身の環境に合わせた初期設定が必要です。OpenAIを使う商品ではAPI利用料金が別途かかります。購入前に販売ページの対応範囲をご確認ください。