n8nでWordPressへ記事を投稿できるようになったら、次にやっておきたいのが「投稿IDを保存すること」です。
投稿IDとは、
「WordPressの記事につく番号」
です。
たとえば、
記事A
→ 投稿ID 845
記事B
→ 投稿ID 846
のように、記事ごとに別の番号が付きます。
この投稿IDをGoogleスプレッドシートへ保存しておくと、
- あとで記事を更新する
- アイキャッチ画像を設定する
- 重複投稿を防ぐ
- どの記事とつながっているか確認する
といったことがしやすくなります。
この記事では、n8nでWordPressへ記事を投稿したあと、その投稿IDをGoogleスプレッドシートへ保存する方法を、中学生でもわかるように実例つきで解説します。
投稿IDとは?
WordPressの記事には、それぞれ番号があります。
これが投稿IDです。
たとえば、
「n8nとは?」という記事
→ ID 845
「ChatGPTの使い方」という記事
→ ID 846
というように、WordPressが自動で番号を付けます。
学校の出席番号のようなものだと考えるとわかりやすいです。
名前が似ている記事があっても、番号が違えば別の記事です。
WordPress公式のREST APIでも、投稿データには一意のidがあり、整数として返されます。
なぜ投稿IDを保存するの?
「記事を投稿できたなら、それで終わりでは?」
と思うかもしれません。
でも、自動化では投稿後の管理も大切です。
投稿IDを保存しておくと、
「このGoogle Sheetsの行は、WordPressの何番の記事なのか」
がわかります。
たとえば、
Google Sheets
管理ID:845
なら、
WordPressの845番の記事
とひも付けられます。
実例で考えてみよう
Googleスプレッドシートに次の3記事があるとします。
記事A
タイトル:n8nとは?
投稿ID:空欄
記事B
タイトル:ChatGPTの使い方
投稿ID:空欄
記事C
タイトル:WordPress自動化
投稿ID:空欄
n8nで記事AをWordPressへ投稿します。
するとWordPressから、
id:845
という結果が返ってきたとします。
その845をGoogle Sheetsの記事Aの行へ保存します。
すると、
記事A
タイトル:n8nとは?
投稿ID:845
となります。
次に記事Bを投稿して、
id:846
が返ってきたら、
記事B
投稿ID:846
と保存します。
これでGoogle SheetsとWordPressの記事を番号で結び付けられます。
今回作る自動化
完成イメージは次の通りです。
Google Sheets
↓
記事を取得
↓
WordPress
↓
下書き作成
↓
Post IDを取得
↓
Google Sheets
↓
同じ行へPost IDを保存
たとえば、
入稿ステータス
=完了
WP投稿済み
=済
管理ID
=845
のように更新します。
WordPressの記事を作ると何が返ってくる?
n8nからWordPressへ記事を作成すると、成功したあとにWordPressから記事情報が返ってきます。
その中に、
id
があります。
WordPress公式のPosts REST APIでは、投稿のidはその投稿の一意な識別番号として定義されています。
つまり、
WordPressノードのOUTPUTにあるid
=投稿ID
と考えれば大丈夫です。 :chatgpt-content-reference{index=”0″}
まずWordPressノードを実行する
最初は、WordPressノードだけでテストします。
タイトルを、
テスト記事
本文を、
これはテストです。
投稿状態を、
Draft
つまり下書きにします。
実行して成功したら、OUTPUTを確認します。
その中に、
id
という項目があるか探します。
たとえば、
id:845
と表示されていれば、その845が投稿IDです。
Draftとは?
Draftは、
下書き
という意味です。
WordPressでは投稿状態として、
- draft
- publish
- pending
- private
などを使えます。
初心者が自動化を試す場合は、いきなり公開するのではなく、
draft
がおすすめです。
WordPress公式の投稿APIでも、draftは利用可能な投稿ステータスとして定義されています。 :chatgpt-content-reference{index=”1″}
Google Sheetsに投稿ID用の列を作る
次にGoogleスプレッドシートへ、
Post ID
または、
管理ID
という列を作ります。
たとえば、
A列
タイトル
B列
完成本文
C列
入稿ステータス
D列
WP投稿済み
E列
Post ID
とします。
最初は、
Post ID
=空欄
です。
WordPressへの投稿が成功したら、ここへ数字を入れます。
投稿IDをGoogle Sheetsへ保存する
WordPressノードのあとにGoogle Sheetsノードを追加します。
このGoogle Sheetsノードでは、
新しい行を追加
ではなく、
元の行を更新
します。
つまり、
記事Aの行
↓
Post ID欄だけ845へ変更
という処理です。
Expressionを使って投稿IDを取得する
たとえばWordPressノードの名前を、
WP下書き作成
にしたとします。
投稿IDを取得するときは、
{{ $('WP下書き作成').first().json.id }}
のようなExpressionを使えます。
難しく見えますが、意味は、
「WP下書き作成というノードの結果からidを取ってください」
です。
つまり、
WordPress
id:845
↓
Google Sheets
Post ID:845
という流れになります。
Expressionを自分で全部書かなくてもいい
初心者は式を暗記しなくても大丈夫です。
n8nでは、前のノードのOUTPUTにある、
id
をGoogle Sheetsの入力欄へドラッグして設定できる場合があります。
最初は、
WordPressノードのidを探す
↓
Google SheetsのPost ID欄へ入れる
だけ理解できれば十分です。
どの行を更新するの?
ここがかなり重要です。
Google Sheetsに10記事あった場合、
投稿IDを保存する行を間違えてはいけません。
たとえば、
5行目の記事をWordPressへ投稿
↓
Post ID 845
なら、
5行目
へ845を保存する必要があります。
6行目へ保存したら、別の記事とひも付いてしまいます。
row_numberとは?
そのときによく使うのが、
row_number
です。
row_numberは、
「Google Sheetsの何行目か」
を表す番号です。
たとえば、
row_number:5
なら、
5行目
です。
最初にGoogle Sheetsから記事を取得するときにrow_numberを持っておけば、最後に同じ行を更新できます。
実例:5行目の記事を更新する
たとえばGoogle Sheetsの5行目が、
タイトル
n8nとは?
入稿ステータス
入稿待ち
Post ID
空欄
だったとします。
n8nで取得したとき、
row_number:5
も受け取ります。
WordPressへ投稿した結果、
id:845
が返ってきました。
最後にGoogle Sheetsを、
row_number:5
で更新します。
結果は、
タイトル
n8nとは?
入稿ステータス
完了
WP投稿済み
済
Post ID
845
になります。
row_numberを最後まで残すのが大切
ワークフローが、
Google Sheets
↓
OpenAI
↓
HTML整形
↓
WordPress
↓
Google Sheets更新
のように長くなると、
途中でrow_numberが見えなくなることがあります。
その場合は、最初のGoogle Sheetsノードを直接参照します。
たとえば、
{{ $('自動入稿記事取得').first().json.row_number }}
のような形です。
ノード名は、自分のワークフローに合わせて変更してください。
投稿IDを保存すると何ができる?
投稿IDの使い道はたくさんあります。
代表的なのは、
- 記事を更新する
- アイキャッチ画像を設定する
- 記事が存在するか確認する
- 重複投稿を防ぐ
- 投稿結果を管理する
実例1:あとから記事を更新する
Google Sheetsに、
Post ID:845
が保存されているとします。
WordPress REST APIでは、
GET /wp/v2/posts/845で845番の記事を取得できます。
また、
POST /wp/v2/posts/845で845番の記事を更新できます。
WordPress公式でも、特定記事の取得と更新には投稿IDを使う仕様になっています。 :chatgpt-content-reference{index=”2″}
たとえば、
- タイトル変更
- 本文修正
- 公開状態変更
などに使えます。
実例2:アイキャッチ画像を設定する
WordPressでは、アイキャッチ画像にもMedia IDがあります。
たとえば、
記事のPost ID
=845
画像のMedia ID
=512
だったとします。
845番の記事に、
featured_media:512
を設定すれば、512番の画像をアイキャッチとして指定できます。
WordPress公式のPosts APIでも、featured_mediaは投稿に設定するメディアIDとして定義されています。 :chatgpt-content-reference{index=”3″}
このときも、
「どの記事を変更するのか」
を決めるためにPost IDが役立ちます。
実例3:重複投稿を防ぐ
Google Sheetsに、
Post ID
=845
が入っているなら、
「すでにWordPressへ投稿した記事では?」と判断できます。
たとえばWordPress投稿前に、
Post IDが空欄か?
をIFノードで確認します。
空欄
↓
新規投稿
845が入っている
↓
投稿しない
という流れです。
IFノードを中学生向けに言うと?
IFノードは、
「もし○○なら、こっちへ進む」
という分かれ道です。
たとえば、
Post IDが空
↓
まだ投稿していない可能性が高い
↓
WordPressへ投稿
Post IDあり
↓
すでに投稿済みの可能性がある
↓
止める
という使い方です。
実例4:投稿済み記事を確認する
Google Sheetsに、
Post ID:845
が残っていれば、
WordPressの845番の記事
を確認できます。
タイトルが途中で変更されても、
Post IDが変わらなければ同じ記事
と判断しやすいです。
タイトルだけで管理するより安全です。
Post IDと管理IDは同じ?
ここは名前の付け方によります。
Google Sheetsの、
管理ID
という列にWordPressのPost IDを保存することもできます。
ただし、自分で付ける管理番号とWordPressのPost IDを両方使うなら、列を分けた方がわかりやすいです。
たとえば、
管理ID
ART-001
WP Post ID
845
という形です。
自分の管理IDを作るメリット
自分の管理IDなら、
ART-001
ART-002
ART-003
のように好きな番号を付けられます。
WordPressを変更したり、別サイトへ記事を移した場合でも、自分の管理番号はそのまま使えます。
一方、Post IDはWordPress側が付ける番号です。
そのため、
管理ID
=自分の記事番号
Post ID
=WordPressの記事番号
と分けるとよりわかりやすくなります。
投稿IDはいつ保存する?
おすすめは、
WordPress投稿成功後、なるべく早く
です。
たとえば、
WordPress投稿
↓
Post ID取得
↓
Google SheetsへPost ID保存
↓
画像処理
↓
その他の処理
↓
完了
という順番です。
なぜすぐ保存するの?
たとえば、
WordPress投稿
=成功
画像処理
=失敗
Google Sheets更新
=まだ
という状態でワークフローが止まるとします。
Post IDを保存していなければ、
「WordPressに投稿されたのか?」
がわかりにくくなります。
でもPost ID 845が保存されていれば、
「WordPress投稿までは成功した」
と判断できます。
おすすめのステータス管理
さらに安全にするなら、
入稿待ち
↓
処理中
↓
WordPress投稿成功
↓
Post ID保存
↓
完了
という流れにします。
たとえばGoogle Sheetsを、
入稿ステータス
処理中
WP投稿済み
済
Post ID
845
としておきます。
その後すべての処理が終わったら、
入稿ステータス
完了
へ変更します。
実例:途中でエラーになった場合
たとえば、
タイトル
n8nとは?
入稿ステータス
処理中
WP投稿済み
済
Post ID
845
だったとします。
この状態なら、
「処理は最後まで終わっていないけれど、WordPress記事は作成済み」
と考えられます。
再実行するときに、もう一度新規投稿するのではなく、
845番の記事を確認
すればいいわけです。
Post IDが空欄なら?
反対に、
入稿ステータス
処理中
WP投稿済み
未
Post ID
空欄
なら、
WordPress投稿前に止まった可能性があります。
原因を直して新規投稿を再実行する判断がしやすくなります。
WordPressのIDと画像IDを間違えない
ワークフローが大きくなると、
id
が複数出てきます。
たとえば、
WordPress記事
Post ID:845
WordPress画像
Media ID:512
です。
どちらもOUTPUT上では、
id
と表示されることがあります。
そのため、
どのノードのidなのか
を必ず確認します。
よくある失敗1:Media IDを保存してしまう
たとえば、
画像アップロード
↓
id:512
WordPress記事作成
↓
id:845
だったとします。
Google SheetsのPost ID欄へ保存するのは、
845
です。
512を保存すると、それは画像のIDです。
ノード名を、
画像アップロード
WP下書き作成
のようにわかりやすくしておくと間違いを減らせます。
よくある失敗2:別の記事の行へ保存する
記事AのPost IDを、記事Bの行へ保存してしまうケースです。
原因になりやすいのが、
更新対象行の指定ミス
です。
row_numberや管理IDなどを使って、
「どの行を更新するのか」
を明確にしましょう。
よくある失敗3:Post IDを固定値にする
たとえばGoogle Sheets更新ノードに、
845
と直接入力してしまうと、次の記事でも845が保存されます。
Post IDは記事ごとに変わります。
そのため、
WordPressノードのid
をExpressionで取得します。
よくある失敗4:WordPress投稿前にIDを保存しようとする
WordPress記事がまだ作られていない段階では、Post IDはありません。
基本は、
WordPress投稿
↓
id取得
↓
Google Sheets保存
という順番です。
よくある失敗5:Post IDを保存せず完了だけにする
もちろん、
入稿ステータス
=完了
だけでも運用できます。
ただしトラブルが起きたときに、
「WordPressのどの記事?」
を探す手間が増えます。
Post IDまで保存しておくと、あとでかなり楽です。
よくある失敗6:数字ではなく別のデータを参照している
Expressionの参照先が、
title
content
category
などになっていると、Post ID欄へ別の値が入ります。
保存前にExpressionのプレビューやOUTPUTを確認しましょう。
投稿IDはURLとは違う
Post IDは、
https://example.com/n8n-guide/
のような記事URLではありません。
Post IDは、
845
のような数字です。
URLが変わってもPost IDは記事を特定するために使えます。
slugとも違う
WordPressには、
slug
という項目もあります。
たとえば、
n8n-guide
です。
slugはURLの一部として使われます。
一方、
Post ID
=845
はWordPress内部の記事番号です。
どちらも便利ですが、初心者ならまずPost IDを保存しておくのがおすすめです。
Google Sheetsを記事管理台帳にできる
Post IDを保存すると、Google Sheetsが単なる記事メモではなく、
記事管理台帳
として使えるようになります。
たとえば、
管理ID
ART-001
タイトル
n8nとは?
入稿ステータス
完了
WP投稿済み
済
Post ID
845
という形です。
これなら、
- 何を作ったか
- 投稿したか
- WordPressの何番の記事か
を1行で確認できます。
複数記事を処理するときも便利
たとえば3記事を処理するとします。
記事A
↓
WordPress
↓
Post ID 845
↓
記事Aの行へ845保存
記事B
↓
WordPress
↓
Post ID 846
↓
記事Bの行へ846保存
記事C
↓
WordPress
↓
Post ID 847
↓
記事Cの行へ847保存
という流れです。
それぞれの投稿IDを正しい行へ保存します。
Loop Over Itemsと組み合わせる場合
複数記事を1件ずつ処理する場合は、
Google Sheets
↓
Loop Over Items
↓
WordPress
↓
Post ID保存
↓
次の記事
という構成にもできます。
ただし、n8nでは多くのノードが複数アイテムを扱えるため、必ずLoop Over Itemsが必要なわけではありません。
必要な場合だけ使いましょう。
Schedule Triggerと組み合わせる場合
毎朝自動で記事を処理する場合にもPost ID保存は重要です。
たとえば、
毎朝8時
↓
入稿待ち取得
↓
WordPress投稿
↓
Post ID保存
↓
完了
という流れです。
翌朝に同じ記事が対象になっても、
Post IDあり
を確認して処理を止める設計にできます。
投稿ID保存は地味だけど重要
自動化では、
AIで記事を書く
画像を生成する
自動投稿する
といった機能が目立ちます。
でも、
投稿IDを保存する
という地味な処理が、あとでかなり役立ちます。
なぜなら、
- 更新
- 重複防止
- エラー復旧
- アイキャッチ設定
- 記事確認
の土台になるからです。
ココナラのn8nテンプレートについて
私は、
「ChatGPTで作った記事をWordPressへ半自動入稿するn8nテンプレート Lite」
をココナラで公開しています。
このようなWordPress入稿自動化では、
Google Sheets
↓
WordPressへ下書き
↓
投稿結果をGoogle Sheetsへ戻す
という流れが重要です。
Post IDを保存しておけば、
「どの記事がWordPressのどの投稿につながっているか」
を管理しやすくなります。
自分で作る場合とテンプレートを使う場合
自分でゼロから作れば、
Google Sheetsの仕組み
Expression
WordPressのOUTPUT
Post ID
row_number
などを理解しながら学べます。
一方、
完成した構成を見ながら覚えたい
ワークフロー設計の時間を減らしたい
という場合は、テンプレートを使う方法もあります。
ただしテンプレートでも、
自分のGoogle Sheets
WordPress Credential
列名
対象行
などの設定は必要です。
初心者はこの順番で試そう
- Google Sheetsにテスト記事を1件作る
- Post ID列を作る
- n8nでその記事を取得する
- WordPressへ下書き投稿する
- WordPressノードのOUTPUTを見る
- idを探す
- Google Sheets更新ノードを追加する
- idをPost ID列へ入れる
- 同じrow_numberの行を更新する
- Google Sheetsに数字が保存されたか確認する
まずは1記事だけで試しましょう。
まとめ
n8nでWordPressへ記事を投稿したら、Post IDをGoogleスプレッドシートへ保存しておくのがおすすめです。
Post IDは、
WordPressの記事番号
です。
たとえば、
記事A
↓
Post ID 845
という形です。
基本の流れは、
Google Sheets
↓
WordPressへ記事投稿
↓
Post ID取得
↓
Google Sheetsへ保存
です。
投稿IDを保存しておくと、
- 記事更新
- アイキャッチ設定
- 重複投稿防止
- エラー時の確認
- WordPress記事とのひも付け
がしやすくなります。
初心者なら、
「WordPress投稿が成功したら、返ってきたidを同じ行へ保存する」
と覚えれば大丈夫です。
まずはテスト記事1件で、
WordPressのid
↓
Google SheetsのPost ID列
へ数字が入るところまで試してみましょう。
注意事項
n8nやWordPressはアップデートによって、ノード名、画面、設定項目などが変更される場合があります。
Post IDをGoogle Sheetsへ保存するときは、必ずWordPressの記事作成ノードから返されたidを使っているか確認してください。
WordPressでは記事のPost IDだけでなく、画像などにも別のIDがあります。Media IDとPost IDを間違えないようにしてください。
Google Sheetsの更新対象行を間違えると、別の記事へPost IDを保存してしまう可能性があります。row_numberや管理IDなどで正しい行を指定してください。
本番運用前に、テスト記事1件で、
WordPress投稿
Post ID取得
Google Sheets更新
まで正常に動くことを確認してください。
参考・公式情報
- ・WordPress Developer Resources「Posts – REST API Handbook」
- ・WordPress Developer Resources「REST API Glossary」
- ・n8n公式ドキュメント「WordPress」
- ・n8n公式ドキュメント「Google Sheets」
- ・n8n公式ドキュメント「Expressions」
- ・n8n公式ドキュメント「Data Mapping」
WordPress公式では投稿データに一意のidがあり、POST /wp/v2/postsで新しい投稿を作成し、GET /wp/v2/posts/<id>で特定投稿を取得、POST /wp/v2/posts/<id>で更新できます。 :chatgpt-content-reference{index=”4″}
n8nやWordPressは継続的に更新されるため、実際の画面と異なる場合は最新の公式ドキュメントも確認してください。
次に読む記事
自分で組み立てる時間を減らしたい方へ
この記事の手順を自分で試す方法に加え、設定の土台として使える販売テンプレートも用意しています。
- WordPress記事入稿 Liteの商品内容・価格を見る(ココナラ)
用意した記事をHTMLに整えてWordPressへ下書き保存。 自動公開はしません。Google Sheets・OpenAI・WordPressの接続設定が必要です。
ご自身の環境に合わせた初期設定が必要です。OpenAIを使う商品ではAPI利用料金が別途かかります。購入前に販売ページの対応範囲をご確認ください。