実際にやってみた話をします。
ぼくはフリーランスのPMとして働いているんですが、クライアントワークをやりながら自分のブログも更新するのって、正直かなりきついです。記事を書こうと思ってPCを開くと、もう深夜1時になってたりして。
で、結論から言うと、WordPressの記事をAIで半自動生成する仕組みを作ってみたら、かなりいい感じになりました。今回はそのフローを4ステップで解説してみます。
タケPM
SIerからフリーランスPMへ転身。リモートワーク・転職・副業のリアルな話を体験ベースで発信しています。
・Googleスプレッドシートにネタを入力するだけで、あとは全部自動で動きます
・プロンプト設計とJSON出力の工夫が品質に直結します
・実際にハマったところも正直に書きます
まず全体像を説明します
使っているツールはこの3つです。
・Claude API(Anthropic):記事本文を生成してもらうAI
・Google スプレッドシート+WordPress REST API:ネタ管理と自動投稿
フローはざっくりこうです。スプレッドシートに「テーマ」「対策キーワード」「担当ライター名」を入力する。n8nがそれを読み取って、AIに記事を作ってもらって、WordPressに下書き投稿する。ぼくがやる作業は最初のスプレッドシート入力だけです。あとは全部自動で動きます。
ステップ1:Googleスプレッドシートでネタを管理する
スプレッドシートは2枚使っています。「記事ネタ」シートと「ライター情報」シートです。これ、意外と大事で、最初から分けておかないと後でカオスになります。
記事ネタシートの列
n8nは「ステータス=未処理」の行だけ取得して、処理が終わったら「処理済み」に自動で書き換えます。これをやっておかないと同じ記事が何本も投稿されるので注意です。ぼくは最初それをやらかしました。
ライター情報シートの列
ここが著者プロフィールボックスの自動挿入と直結する、わりと重要な部分です。
「Author Bio Confidential」はAIへの指示にだけ使う内部情報で、公開はしません。ライターの実体験・口癖・文体の癖なんかを書いておくと、AIが一人称視点で書いてくれる精度が上がる気がします。
ステップ2:n8nでワークフローを組む
n8nのワークフローはフェーズで分けて考えると整理しやすいです。
データ取得フェーズ
Google Sheetsノードで「未処理」行を1件取得して、ライター情報シートから対応するライターのデータを引っ張ります。この2つをデータ結合ノードでマージしておくと、以降のノードで`$json[‘フィールド名’]`で参照できます。
AI記事生成フェーズ
Claudeノードにプロンプトを渡して記事を生成してもらいます。出力形式はJSON指定です。title・description・slug・category・contentの各フィールドをJSONで返してもらうことで、後工程の自動投稿が楽になります。
JSON解析フェーズ
正直、ここが一番ハマりました。AIが生成するJSONの中で、コンテンツ内にダブルクォートが含まれるとJSONが壊れてパース失敗します。対策は2段階でやっています。
②n8n側でも正規表現による手動フィールド抽出のフォールバックを実装しておく
プロンプトだけでは完全には防げないです。AIは指示を守らないことがあります。なので両方やっておくのがいいと思います。
WordPress投稿フェーズ
WordPress REST APIで記事を下書き投稿します。「完全自動公開」ではなく「下書き」にして、人間が最終確認してから公開する運用にしています。AIの出力には誤情報が混じることもあるので、そこは割り切っています。
ステップ3:AIプロンプト設計で差がつく3つのポイント
ポイント1:出力形式をGutenbergブロックで指定する
WordPressがブロックエディタを使っているなら、AIに最初からGutenberg形式で出力させるのがいいと思います。<!– wp:paragraph –>や<!– wp:heading {“level”:2} –>といったブロックコメントごと生成させると、WordPress貼り付け後すぐに崩れのない表示になります。
ポイント2:独自CSSクラスの装飾ルールを細かく書く
テーマ独自のスタイルや追加CSSのクラスをプロンプトに組み込みます。たとえば「見出しh2には〇〇というclassを付ける」「強調は〇〇というclassを使う」「〇〇タグは使わない」といったルールをプロンプトに書いておくと、AIはわりと忠実に従ってくれます。これ、意外と大事で、ここをサボると毎回手直しが発生します。
ポイント3:ライターのペルソナを渡す
スプレッドシートの「Author Bio Confidential」をプロンプトに差し込みます。ペルソナ情報が詳しいほど、AIの文章がそのライターらしくなる気がします。
ステップ4:著者プロフィールボックスを記事に自動挿入する
読者がライターを信頼するうえで著者情報は大切だと思います。毎回手動でHTMLを貼るのは面倒なので、これも自動化しています。
プロフィールボックスは2種類用意しました。
②「この記事を書いた人」:記事末尾のフル版。写真・名前・詳細プロフィール・記事一覧リンク。
スプレッドシートの「Author Photo」「Author Introduction for post」「About the Author for post」をHTMLに差し込むだけです。HTMLの属性値はシングルクォートで書いておくと、JSON文字列内でのエスケープ問題が起きないのでおすすめです。
運用してわかったこと(正直に書きます)
・ショートコードの開きタグ直後に改行が入って変な空白ができる→プロンプトで改行禁止を明示する
・スプレッドシートの空行を拾って空記事が投稿される→ステータス列チェックを厳格化する
・n8nのノード間でデータ参照が切れる→データ結合後は`$json`で参照する
特にJSONパースエラーは最初の1ヶ月でかなり頻発しました。正直、AIは指示を完璧には守ってくれないので、「プロンプトで防ぐ」と「ワークフロー側で吸収する」の2段構えが必要だと思います。
まとめ:WordPress AI 自動化、個人でも十分できます
最初の構築には時間がかかりましたが、動いてしまえばネタ入力から下書き完成まで3〜5分くらいになりました。ちょっとテンション上がりました。
ただ、AIが書いた記事をそのまま公開するのはぼくはやっていません。自動化はあくまで「下書きを高速で作る道具」として使うのが現実的だと思っています。最終チェックと加筆は人間がやる、というスタンスです。
文章を書くのが得意じゃないぼくでも、こういう仕組みを作ることでなんとかブログを続けられています。同じように悩んでいる人の参考になれば嬉しいです。
・Claude API:https://www.anthropic.com
・WordPress REST API:WordPressに標準搭載

