n8nでGoogleスプレッドシートからWordPressへ記事を自動投稿するとき、
「タイトルはスプレッドシートから入れたい」
「本文も自動でWordPressへ送りたい」
「カテゴリも記事ごとに変えたい」
ということがあります。
この場合は、
- Google Sheets
- n8n
- WordPress
の間で、
どの列をWordPressのどの項目へ渡すか
を設定します。
この記事では、
- タイトル
- 本文
- カテゴリ
の3つをGoogleスプレッドシートからWordPressへ自動設定する方法を、初心者向けに実例つきで解説します。
今回作る自動化
完成イメージは次の通りです。
- Google Sheets
- 記事データを取得
- n8nで必要な項目を読み取る
- WordPressへ下書き投稿
Googleスプレッドシートには、
- タイトル
- 完成本文
- カテゴリ
を用意します。
たとえば、
- タイトル
n8nとは?初心者向けに解説 - 完成本文
n8nは作業を自動化できるツールです…… - カテゴリ
n8n
という記事です。
これをn8nで取得し、WordPressへ送ります。
Googleスプレッドシートを準備する
まず、次のような列を作ります。
- A列 タイトル
- B列 完成本文
- C列 カテゴリ
- D列 入稿ステータス
実例は、
- タイトル
n8nとは? - 完成本文
n8nは複数のサービスをつないで作業を自動化できるツールです。 - カテゴリ
n8n - 入稿ステータス
入稿待ち
です。
n8nでは、この1行を1つの記事として扱います。
Google Sheetsノードで記事を取得する
n8nのGoogle Sheetsノードを使って記事を取得します。
たとえば、
入稿ステータス
=入稿待ち
の記事だけ取得するようにします。
実行したらOUTPUTを確認します。
OUTPUTに、
- タイトル
- 完成本文
- カテゴリ
が表示されていれば、Google Sheetsからの取得は成功です。
Expressionとは?
Google Sheetsから取得したデータをWordPressで使うときに、
Expressionを使います。
難しく見えますが、
「前のノードにあるデータをここで使う」
という指定です。
たとえば、
{{ $json["タイトル"] }}
なら、
現在のデータにある「タイトル」を使う
という意味です。
タイトルをWordPressへ設定する
WordPressノードには、
Title
という項目があります。
ここへ、
{{ $json["タイトル"] }}
を設定します。
Google Sheetsに、
タイトル
n8nとは?
と入っていれば、WordPressにも、
n8nとは?
というタイトルが入ります。
本文をWordPressへ設定する
WordPressの、
Content
には本文を設定します。
Google Sheetsの列名が、
完成本文
なら、
{{ $json["完成本文"] }}
を指定します。
すると、
Google Sheets
完成本文
↓
WordPress
Content
という形で渡せます。
HTML形式ならWordPressでも使いやすい
本文が、
<h2>n8nとは?</h2>
<p>n8nは自動化ツールです。</p>
のようなHTMLになっていれば、WordPressの記事本文として扱いやすくなります。
反対に、
## n8nとは?
のようなMarkdownをそのまま送ると、WordPress上で期待した見た目にならない場合があります。
そのため、
- AIで記事生成
- HTMLへ整形
- WordPress
という流れにする方法もあります。
カテゴリは少し考え方が違う
タイトルと本文は、
文字
↓
文字
なので比較的簡単です。
しかしカテゴリは、
Google Sheets
カテゴリ名
を、
WordPress
カテゴリID
へ変換する必要があります。
たとえば、
- n8n=2
- ChatGPT=3
- WordPress=4
だったとします。
Google Sheetsには、
n8n
と書きます。
n8n側で、
n8n
↓
2
へ変換してWordPressへ渡します。
カテゴリIDとは?
カテゴリIDは、
WordPressがカテゴリを区別するための番号
です。
たとえば、
- n8n
ID 2 - ChatGPT
ID 3
という形です。
学校の出席番号のようなものだと考えるとわかりやすいです。
同じ「n8n」という名前でも、カテゴリIDはWordPressサイトごとに異なります。
必ず自分のサイトで確認してください。
Expressionでカテゴリ名を変換する
たとえば、
- n8n=2
- ChatGPT=3
- WordPress=4
- AI自動化=5
なら、次のようなExpressionを使えます。
{{
({
'n8n': 2,
'ChatGPT': 3,
'WordPress': 4,
'AI自動化': 5
})[$json["カテゴリ"]]
}}
これは、
- Google Sheetsのカテゴリ名を確認
- 対応する数字を探す
- カテゴリIDを返す
という処理です。
実例で確認する
Google Sheetsに、
- タイトル
Googleスプレッドシートをn8nと連携する方法 - 完成本文
<p>この記事では連携方法を解説します。</p> - カテゴリ
n8n
と入っているとします。
n8nで取得すると、
- タイトル
↓
Googleスプレッドシートをn8nと連携する方法 - 本文
↓
HTML本文 - カテゴリ
↓
n8n
となります。
カテゴリは対応表によって、
n8n
↓
2
へ変換します。
最後にWordPressへ、
- Title
Googleスプレッドシートをn8nと連携する方法 - Content
HTML本文 - Categories
2
を渡します。
これでタイトル・本文・カテゴリを自動設定できます。
投稿状態はDraftがおすすめ
最初は、
Status
=Draft
にします。
Draftは、
下書き
という意味です。
自動化では、
タイトルが空だった
本文のHTMLが崩れた
カテゴリが違った
ということもあります。
まず下書きへ保存し、内容を確認してから公開する方が安全です。
よくある失敗1:タイトルが空になる
WordPressに記事はできたのに、
タイトルなし
になった場合です。
まずGoogle SheetsノードのOUTPUTを確認します。
Google Sheetsの列名が、
記事タイトル
なのに、
{{ $json["タイトル"] }}
を使っていれば一致しません。
列名とExpressionをそろえましょう。
よくある失敗2:本文が入らない
本文についても同じです。
Google Sheets側が、
完成本文
なのに、
{{ $json["本文"] }}
としていると、必要なデータを取得できません。
OUTPUTに実際に表示されている項目名を確認します。
よくある失敗3:カテゴリが未分類になる
タイトルと本文は正常なのに、
未分類
になる場合があります。
確認するのは、
- カテゴリIDが正しいか
- カテゴリ名と対応表が一致しているか
- WordPressへ正しい形式で渡しているか
です。
たとえば、
n8n
と、
N8N
は別の文字として扱われる可能性があります。
よくある失敗4:Google Sheetsに余計な空白がある
見た目では同じでも、
n8n
と、
n8n
では最後に空白があります。
カテゴリ変換がうまくいかない原因になることがあります。
カテゴリ名は入力規則やプルダウンを使って統一すると管理しやすくなります。
よくある失敗5:前のノードでデータが消えている
ワークフローが、
- Google Sheets
- OpenAI
- Edit Fields
- WordPress
だったとします。
Google Sheetsではタイトルがあったのに、Edit Fieldsで本文しか残していなければ、
WordPressへ来たときにタイトルがない
ということがあります。
この場合は、
各ノードのOUTPUT
を順番に確認します。
複数記事では.first()に注意
3記事を順番に処理している場合、
.first()
で最初のデータを直接参照すると、意図せず1記事目の内容を繰り返し使うことがあります。
たとえば、
記事A
記事B
記事C
があるのに、
A
A
A
と投稿されるようなケースです。
現在処理しているデータなら、
{{ $json["タイトル"] }}
のように参照できる構成の方がわかりやすいことがあります。
複数記事を使う場合は、必ず少数データでテストしてください。
OpenAIでタイトルやカテゴリを作ることもできる
さらに、
- Google Sheets
- OpenAI
- WordPress
という構成にもできます。
たとえばGoogle Sheetsには、
テーマ
n8nとGoogle Sheetsの連携
だけ入れます。
OpenAIに、
- タイトル
- 本文
- カテゴリ
を作ってもらい、その結果をWordPressへ送ります。
ただしAIが、
n8nについて
ではなく、
おすすめカテゴリはn8nです
のように余計な文章を返すと、自動処理しにくくなります。
出力形式を固定することが大切です。
JSONで受け取る方法
たとえばOpenAIから、
{
"タイトル": "n8nとGoogle Sheetsを連携する方法",
"カテゴリ": "n8n"
}
のように返してもらえば、n8nで各項目を取り出しやすくなります。
そのカテゴリ名をさらに、
n8n
↓
カテゴリID
へ変換します。
最初は1記事だけテストする
初心者なら、
- タイトル
テスト記事 - 完成本文
<p>これはテストです。</p> - カテゴリ
n8n
という1件だけで試します。
WordPressへ下書き投稿して、
- タイトルが正しい
- 本文が表示される
- カテゴリが正しい
ことを確認します。
成功したら記事数を増やします。
ココナラのn8nテンプレートについて
私は、
「ChatGPTで作った記事をWordPressへ半自動入稿するn8nテンプレート Lite」
をココナラで公開しています。
WordPress自動入稿では、
- Google Sheets
- タイトル
- 本文
- カテゴリ
- WordPress下書き
というデータの流れを正しく作ることが重要です。
ゼロから作る場合は、今回紹介したExpressionやカテゴリIDを1つずつ設定していきます。
完成したワークフローを参考にしながら設定したい場合は、テンプレートを使う方法もあります。
ただし、Google Sheetsの列名やWordPressのカテゴリIDなどは、自分の環境に合わせて変更する必要があります。
まとめ
n8nを使えば、Googleスプレッドシートから、
- タイトル
- 本文
- カテゴリ
を取得してWordPressへ自動設定できます。
基本は、
- Google Sheets
- 記事データ取得
- Expressionで値を取得
- WordPressへ下書き
です。
タイトルなら、
{{ $json["タイトル"] }}
本文なら、
{{ $json["完成本文"] }}
のように指定できます。
カテゴリは、
カテゴリ名
↓
カテゴリID
への変換が必要です。
初心者はまず1件だけ使って、
- タイトル
- 本文
- カテゴリ
の3つが正しくWordPressへ入ることを確認しましょう。
注意事項
- WordPressのカテゴリIDはサイトごとに異なります。他サイトのカテゴリIDをそのまま使わないでください。
- n8nやWordPressはアップデートによって、ノード名や設定画面が変わる場合があります。
- 複数記事を処理する場合は、最初の記事だけを参照していないか確認してください。
- OpenAIでタイトルやカテゴリを自動生成する場合は、出力が毎回完全に同じ形式になるとは限りません。テストしてから本番運用してください。
- 大量の記事を処理する前に、必ずテスト記事1件をDraftで投稿することをおすすめします。
参考・公式情報
- ・n8n公式ドキュメント「Google Sheets」
- ・n8n公式ドキュメント「WordPress」
- ・n8n公式ドキュメント「Expressions」
- ・n8n公式ドキュメント「Data Mapping」
- ・WordPress Developer Resources「Posts – REST API Handbook」
- ・WordPress Developer Resources「Categories – REST API Handbook」
n8nやWordPressは継続的に更新されているため、実際の画面と異なる場合は最新の公式ドキュメントも確認してください。
次に読む記事
自分で組み立てる時間を減らしたい方へ
この記事の手順を自分で試す方法に加え、設定の土台として使える販売テンプレートも用意しています。
- WordPress記事入稿 Liteの商品内容・価格を見る(ココナラ)
用意した記事をHTMLに整えてWordPressへ下書き保存。 自動公開はしません。Google Sheets・OpenAI・WordPressの接続設定が必要です。
ご自身の環境に合わせた初期設定が必要です。OpenAIを使う商品ではAPI利用料金が別途かかります。購入前に販売ページの対応範囲をご確認ください。