n8nでWordPressの記事を自動投稿するとき、
- タイトルはどうやって入れるの?
- 本文はどこに渡すの?
- カテゴリはどうやって指定するの?
と迷うことがあります。
でも考え方はシンプルです。
WordPressの記事には、
- タイトル
- 本文
- カテゴリ
それぞれに入れる場所があります。
n8nでは、前のノードから受け取ったデータをWordPressへ渡すことで、自動設定できます。
この記事では、
- n8nでWordPress記事のタイトルを自動設定する方法
- 本文を自動設定する方法
- カテゴリを自動設定する方法
- カテゴリIDとは何か
- 初心者がつまずきやすいポイント
まで、中学生でもわかるようにやさしく解説します。
今回作る自動化
今回の完成イメージは次の通りです。
- Google Sheets
- タイトル取得
- 本文取得
- カテゴリ取得
- 必要ならカテゴリIDへ変換
- WordPress
- 下書き保存
たとえばGoogleスプレッドシートに、
- タイトル:
n8nとは?初心者向けにやさしく解説 - 本文:
記事本文 - カテゴリ:
n8n
と入れておきます。
n8nがこの3つを取得し、WordPressの記事へ自動で設定します。
WordPressでは何を送るの?
WordPressのREST APIでは、投稿を作成するときに、
titlecontentcategoriesstatus
などを送れます。
簡単に言うと、
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ノードずつOUTPUTを確認する
n8nでは、
Google Sheets
↓
OpenAI
↓
WordPress
を一気に作るより、
Google Sheetsを実行
↓
OUTPUT確認
OpenAIを実行
↓
OUTPUT確認
WordPressを実行
↓
結果確認
という流れが安全です。
どこで問題が起きたのかすぐ見つけられます。
実際のおすすめ構成
ブログ記事を半自動入稿するなら、
- Google Sheets
- OpenAI タイトル・本文生成
- OpenAI HTML整形
- Edit Fields カテゴリIDなど整理
- WordPress 下書き作成
- 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へ変更する必要があります。
初心者はこの順番で作ろう
おすすめは次の順番です。
- Google Sheetsからタイトルを取得する
- WordPressへタイトルだけ下書き投稿する
- 本文を追加する
- HTML表示を確認する
- 自分のカテゴリIDを調べる
- カテゴリを追加する
- 投稿後のPost IDを確認する
- Google Sheetsを完了に更新する
- 必要ならOpenAIを追加する
- 最後に画像やタグを追加する
この順番なら、エラー原因を見つけやすくなります。
まとめ
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は継続的に更新されているため、実際の設定画面と異なる場合は各サービスの最新公式ドキュメントも確認してください。
次に読む記事
自分で組み立てる時間を減らしたい方へ
この記事の手順を自分で試す方法に加え、設定の土台として使える販売テンプレートも用意しています。
- WordPress記事入稿 Liteの商品内容・価格を見る(ココナラ)
用意した記事をHTMLに整えてWordPressへ下書き保存。 自動公開はしません。Google Sheets・OpenAI・WordPressの接続設定が必要です。
ご自身の環境に合わせた初期設定が必要です。OpenAIを使う商品ではAPI利用料金が別途かかります。購入前に販売ページの対応範囲をご確認ください。