
Claude CodeでWordPressのブログ運用を自動化する場合、現実的な到達点は「調査から下書き保存までを自動化し、公開は人が判断する」構成です。2026年8月28日時点の公式ドキュメントで確認できる範囲では、Claude Code側は非対話実行、権限制御、フック、サブエージェント、MCPをすべて備えており、WordPress側はREST APIとアプリケーションパスワードで外部から投稿を作成できます。技術的には全自動公開も可能ですが、後述するGoogleの品質ガイダンスと事故時の被害を考えると、下書きで止める設計が合理的です。
本記事では、実現方式の違い、必要な設定、事故を防ぐ作り方を、AnthropicのClaude Code公式ドキュメントとWordPressのREST APIリファレンスから確認できる事実だけで組み立てます。
| 確認項目 | 結論 | 根拠 |
|---|---|---|
| Claude Codeを非対話で動かせるか | できる | claude -p でプロンプトを渡して実行し終了する |
| 出力を機械的に扱えるか | できる | --output-format json と --json-schema に対応 |
| WordPressへ外部から投稿を作れるか | できる | REST APIの POST /wp/v2/posts とアプリケーションパスワード |
| 下書きで止められるか | できる | status に draft を指定する |
| 全自動公開を推奨できるか | 推奨しない | Googleは検索順位操作目的の大量自動生成をスパムポリシー違反としている |
自動化の三つの実現方式

Claude Codeを軸にブログ自動化を組む方法は大きく三つあります。名前が似ているため混同されがちですが、担当範囲が違います。
| 方式 | 実体 | 向いている用途 | 注意点 |
|---|---|---|---|
| Claude Code CLIの非対話実行 | ターミナルの claude -p をスクリプトやCIから呼ぶ | 既存のシェル運用に組み込む、cronやCIで回す | Python以外の言語からも呼べるが、出力の解析は自前 |
| Claude Agent SDK | PythonとTypeScriptのライブラリ。Claude Codeと同じツール、エージェントループ、コンテキスト管理を自分のプロセスで動かす | アプリに組み込む、承認コールバックや構造化出力を扱う | 公式ドキュメントによると、事前承認がない限り第三者製品でclaude.aiログインやレート制限を提供することは認められておらず、APIキー認証を使う |
| MCPサーバー経由 | Model Context Protocolで外部ツールを接続する | WordPressや外部サービスをツールとして扱う | 接続前に信頼性の確認が必要。外部コンテンツを取得するサーバーはプロンプトインジェクションの経路になり得る |
AnthropicのAgent SDK概要では、SDKはPythonとTypeScriptのみで提供され、他の言語から同じエージェントループを動かす場合は -p と --output-format json でCLIをサブプロセスとして実行する方法が案内されています。個人ブログの自動化なら、まずCLI方式で十分です。
| 紛らわしい名前 | 何か | 本記事での扱い |
|---|---|---|
| Claude Code | ターミナル、IDE、デスクトップアプリ、ブラウザで動くエージェント型のコーディングツール | 自動化の実行主体 |
| Claude Agent SDK | Claude Codeをライブラリとして使うPython/TypeScriptパッケージ | アプリ組み込み時の選択肢 |
| Client SDK | Anthropic APIを直接呼ぶSDK。ツールループは自分で書く | 本記事の対象外 |
| Managed Agents | Anthropicがエージェントとサンドボックスを運用するホスト型のREST API。Agent SDKとは別製品 | 本記事の対象外 |
WordPress側の接続はREST APIとアプリケーションパスワード
WordPressは標準でREST APIを備えています。投稿の作成、取得、更新、削除は次のエンドポイントです。
| 操作 | メソッド | パス |
|---|---|---|
| 一覧取得 | GET | /wp/v2/posts |
| 作成 | POST | /wp/v2/posts |
| 単一取得 | GET | /wp/v2/posts/<id> |
| 更新 | POST | /wp/v2/posts/<id> |
| 削除 | DELETE | /wp/v2/posts/<id> |
作成時に指定できる主な引数は title、content、status、slug、excerpt、categories、tags、meta などです。自動化で最も重要なのは status で、指定できる値は次の五つです。
statusの値 | 意味 | 自動化での使い方 |
|---|---|---|
draft | 下書き | 自動化の既定値にする |
pending | レビュー待ち | 複数人で確認する運用なら使う |
publish | 公開 | スクリプトからは使わない設計にする |
future | 予約投稿 | 公開日時の予約。人が確認した後に使う |
private | 非公開 | 限定共有の確認用 |
認証は公式の認証ドキュメントに整理されています。外部アプリからの接続にはアプリケーションパスワードを使います。
| 認証方式 | 使える場面 | 要件 |
|---|---|---|
| Cookie認証 | WordPress内部からの利用でログイン済みの場合に限られる | wp_rest で生成したnonceを X-WP-Nonce ヘッダーまたは _wpnonce で渡す |
| アプリケーションパスワード | 外部アプリやスクリプトからの接続 | WordPress 5.6以降。ユーザー編集画面で発行し、Basic認証(RFC 7617)で渡す。HTTPSでの通信が前提 |
発行はダッシュボードのユーザー編集画面から行い、動作確認は次のように行えます。ユーザー名とパスワードは環境変数から渡し、コマンド履歴やログに残さないでください。
curl --user "$WP_USER:$WP_APP_PASSWORD" \
"https://example.com/wp-json/wp/v2/users?context=edit"なお2026年8月28日時点のWordPress公式のリリース一覧では、最新版は2026年8月19日公開の7.1で、安全に使えるのは7.1系の最新版だとされています。自動投稿を組む前に本体とプラグインを更新してください。
Claude Code側の設定
自動化で使うのは対話画面ではなく非対話モードです。公式のプログラム実行ガイドによると、-p を付けるとプロンプトを実行して終了し、成功時は終了コード0、失敗時は0以外を返します。
| フラグ | 役割 | 自動化での使いどころ |
|---|---|---|
-p/--print | 非対話で実行して終了する | スクリプトやCIの基本形 |
--output-format | text、json、stream-json を選ぶ | json にして結果を機械処理する |
--json-schema | JSON Schemaで出力形式を指定する | タイトルやスラッグを構造化して受け取る |
--allowedTools | 確認なしで使えるツールを指定する | Read や特定のBashコマンドだけ許可する |
--permission-mode | セッション全体の権限モードを決める | CIでは dontAsk で締める |
--bare | フック、スキル、サブエージェント、プラグイン、MCP、CLAUDE.mdの自動読み込みを飛ばす | どの環境でも同じ結果にしたいCI向け |
--append-system-prompt | 既定の動作を保ったまま指示を追加する | 執筆ルールや禁止表現を渡す |
--continue/--resume | 直前の会話やセッションIDを指定して継続する | 調査、執筆、検証を分割して回す |
権限モードは公式に複数用意されています。自動実行では、意図しないコマンドが走らないように締める方向で選びます。
| 権限モード | 挙動 | 自動化での評価 |
|---|---|---|
| Manual(既定の開始状態) | 読み取り中心で、変更操作は都度確認する | -p では確認できないため単体では止まる |
dontAsk | 許可ルールと読み取り専用コマンド以外を拒否する | 締めたCI実行に向く |
acceptEdits | ファイル編集と一部のファイル操作コマンドを自動承認する | 記事ファイルの生成までなら使える |
auto | 分類モデルが行動を審査して危険なものを止める | 利便性は高いが自動投稿では過剰になりやすい |
bypassPermissions | 確認を飛ばす | 公開権限のある認証情報がある環境では使わない |
非対話実行には注意点があります。公式のセキュリティページには、-p で非対話実行するとフォルダの信頼確認が無効になると明記されています。また --bare を付けない -p セッションは、そのプロジェクトの .claude/settings.json のフックや .mcp.json のサーバーを読み込みます。他人のリポジトリをそのまま自動処理しない、という原則が必要です。
フックで危険な操作を止める
フックは、Claude Codeのライフサイクル上の特定の時点で自動実行されるコマンド、HTTPエンドポイント、またはLLMプロンプトです。自動投稿では、公開系の操作を機械的に拒否する用途で効きます。
| 実行の頻度 | 主なイベント |
|---|---|
| セッションごとに1回 | SessionStart、SessionEnd |
| ターンごとに1回 | UserPromptSubmit、Stop、StopFailure |
| ツール呼び出しごと | PreToolUse、PostToolUse、PostToolUseFailure、PermissionRequest、PermissionDenied |
設定の置き場所はスコープで分かれます。チームで共有するなら .claude/settings.json、個人環境だけなら ~/.claude/settings.json です。
| 置き場所 | 適用範囲 | 共有 |
|---|---|---|
~/.claude/settings.json | すべてのプロジェクト | 共有されない |
.claude/settings.json | そのプロジェクト | リポジトリにコミットして共有できる |
.claude/settings.local.json | そのプロジェクト | 共有されない |
PreToolUse のフックは、終了コード2でツール呼び出しをブロックできます。JSONで permissionDecision に deny を返し、理由を permissionDecisionReason に書く形が公式の例です。"status": "publish" を含むリクエストや、DELETE を含むコマンドを弾く用途に使えます。
サブエージェントで役割を分ける
サブエージェントは、独立したコンテキストウィンドウ、独自のシステムプロンプト、限定したツールと権限で動く専門エージェントです。調査、執筆、ファクトチェック、SEO確認を分けると、本体の会話が読み込みで埋まりません。
| フロントマターの項目 | 必須 | 内容 |
|---|---|---|
name | 必須 | 小文字とハイフンの識別子 |
description | 必須 | どんなときに委任するか |
tools | 任意 | 使えるツールの許可リスト |
disallowedTools | 任意 | 拒否するツール |
model | 任意 | opus、sonnet、haiku、モデルID、または inherit |
permissionMode | 任意 | そのエージェントの権限モード |
maxTurns | 任意 | 停止するまでの最大ターン数 |
定義ファイルはプロジェクト用なら .claude/agents/、個人用なら ~/.claude/agents/ に置きます。ファクトチェック役に tools で WebFetch と Read だけを与え、投稿役だけにHTTP実行を許すといった分離ができます。
| 役割 | やること | 与えるツールの例 |
|---|---|---|
| 調査 | 一次情報の収集と出典URLの記録 | WebSearch、WebFetch |
| 構成 | 見出しと表の設計 | Read、Write |
| 執筆 | 本文HTMLの生成 | Read、Write、Edit |
| 検証 | 数値の再計算、リンク切れ、禁止表現の確認 | Read、Bashの限定コマンド |
| 投稿 | 下書きとして保存 | 投稿スクリプトの実行だけ |
MCPで接続する場合
MCPは外部ツールやデータソースを接続するオープンな標準です。Claude Codeでは claude mcp add で追加し、トランスポートとスコープを選びます。
| 区分 | 選択肢 | 備考 |
|---|---|---|
| トランスポート | HTTP、SSE、stdio、WebSocket | リモートはHTTPが推奨、SSEは非推奨 |
| スコープ | ローカル、プロジェクト、ユーザー | プロジェクトは .mcp.json に保存されチームで共有できる |
| 認証 | OAuth 2.0、カスタムヘッダー、ヘルパースクリプト | /mcp または claude mcp login で認証する |
WordPress側のMCPは状況が動いています。Automatticの wordpress-mcp は2026年1月19日にアーカイブされ読み取り専用になり、リポジトリには WordPress/mcp-adapter へ移行するよう案内が出ています。mcp-adapterはAbilities APIをMCPへ橋渡しするパッケージで、ライセンスはGPL-2.0-or-laterです。
つまり2026年8月28日時点では、MCP経由のWordPress操作は移行期にあります。個人ブログの自動化なら、仕様が安定しているREST APIを直接叩くほうが壊れにくく、権限の絞り込みも自分で決められます。公式ドキュメントも、接続前に各サーバーの信頼性を確認すること、外部コンテンツを取得するサーバーはプロンプトインジェクションの経路になり得ることを警告しています。
実装手順

下書き保存までを自動化する最小構成は、次の順番で作ります。
| 手順 | やること | 確認ポイント |
|---|---|---|
| 1 | WordPressでアプリケーションパスワードを発行する | 投稿権限のあるユーザーで、HTTPSのサイトであること |
| 2 | 認証情報を環境変数か .env に置く | リポジトリにコミットしない。権限は所有者のみ |
| 3 | 投稿スクリプトを書く | status は draft 固定。公開処理を実装しない |
| 4 | 記事の検証スクリプトを書く | 文字数、表の数、リンク切れ、禁止表現、数値の再計算 |
| 5 | .claude/agents/ に役割別のサブエージェントを置く | 投稿役だけに実行権限を与える |
| 6 | PreToolUse フックで公開系の操作を拒否する | 終了コード2でブロックされることをテストする |
| 7 | claude -p で通しで動かす | --output-format json の result と終了コードを確認する |
| 8 | 下書きを人が読んで公開判断する | 出典、数値、日付、内部リンクを目視で確認する |
手順3のスクリプトは、Claude Codeに書かせても構いませんが、公開を実装しないという設計だけは人が決めてください。実行例は次の形になります。
claude --bare -p "調査結果を data/article.html にまとめて、検証スクリプトを通してから下書き保存して" \
--allowedTools "Read,Write,Edit,Bash(python3 main.py *)" \
--permission-mode dontAsk \
--output-format jsonこの形なら、許可したのは記事ファイルの読み書きと自作スクリプトの実行だけです。任意のシェルコマンドやネットワーク操作は通りません。
事故を防ぐ設計
自動化で怖いのは品質より事故です。実際に起きやすい失敗と、その対策を整理します。
| 起きやすい事故 | 結果 | 対策 |
|---|---|---|
| 誤って公開してしまう | 未検証の記事が検索エンジンに拾われる | スクリプトに公開処理を実装しない。status を draft に固定し、保存後に状態を再取得して検証する |
| 同じ記事を二重に投稿する | 重複コンテンツと管理の混乱 | スラッグで既存記事を検索し、公開済みが見つかったら停止する |
| 既存記事を上書きする | 公開済みの内容が消える | 更新対象を自分が作った下書きに限定し、識別用のコメントを本文に埋める |
| 認証情報が漏れる | サイトを乗っ取られる | 環境変数で渡し、ログに出さない。漏れたらアプリケーションパスワードを失効させる |
| 取得した外部ページの指示に従ってしまう | 意図しない操作が走る | 取得内容は資料として扱う。信頼できないコンテンツを直接パイプで渡さない |
| 誤った数値をそのまま書く | 読者に不利益、信頼の毀損 | 数値は計算式ごとスクリプトで再検証し、合わない場合は保存を止める |
公式のセキュリティページには、信頼できないコンテンツを扱うときの推奨として、提案されたコマンドを承認前に確認すること、信頼できないコンテンツを直接パイプで渡さないこと、外部のウェブサービスとやり取りするスクリプトは仮想マシンで実行することが挙げられています。あわせて、Claude Codeは与えた権限しか持たず、安全性の確認は利用者の責任である点も明記されています。
品質とSEOの前提
自動化の価値は、公開できる品質に届いて初めて生まれます。Googleの検索セントラルは、評価するのは制作方法ではなく、人の役に立つ内容かどうかだとしています。同時に、検索順位の操作を主目的とした自動生成はスパムポリシー違反にあたるとも述べています。
| Googleが示す観点 | 自動化で担保する方法 |
|---|---|
| 誰が作ったかが分かる | 運営者情報と執筆方針を明示する |
| どう作ったかが分かる | AIの利用を注記し、人の確認工程を書く |
| なぜ作ったかが分かる | 読者の課題を先に定義してから記事を作る |
| 明らかな内容を超えた分析がある | 一次情報から自分で計算した数値や比較を入れる |
| 信頼性が高い | 出典を原典で示し、時点を明記する |
Googleは、E-E-A-Tのうち信頼性が最も重要であり、健康や金融のようにお金や生活に関わる話題ではさらに重視されるとしています。自動化するほど、出典の確認と数値の再計算を機械側に組み込む価値が上がります。
コストと制限
Claude CodeはサブスクリプションまたはAnthropic Consoleのアカウントで利用します。2026年8月28日時点の公開情報では、料金は次のとおりです。
| プラン | 料金 | Claude Code |
|---|---|---|
| Free | 0ドル | 含まれない |
| Pro | 年払いで月17ドル、月払いで月20ドル | 含まれる |
| Max | 月100ドルから。Proの5倍または20倍の利用量を選ぶ | 含まれる |
使用量の上限はClaudeとClaude Codeで共有されます。上限に達した場合は、リセットを待つか、標準API料金でクレジットを購入する選択肢があります。API料金はプラン料金とは別建てです。
実行ごとのコストを把握したい場合は、--output-format json の応答に含まれる total_cost_usd とモデル別の内訳を記録します。公式ドキュメントでは、これはクライアント側の推定値であり実際の請求と異なる場合があると注記されています。
| 運用上の制限 | 内容 |
|---|---|
| 標準入力の上限 | パイプで渡せるのは10MBまで。超えるとエラーで終了する |
| bareモードの認証 | --bare ではサブスクリプションのログイン情報を使わないため ANTHROPIC_API_KEY が必要 |
| 信頼確認の無効化 | -p の非対話実行ではフォルダの信頼確認が行われない |
| Agent SDKの認証 | 第三者製品でのclaude.aiログイン提供は原則認められておらず、APIキー認証を使う |
よくある質問

Claude CodeだけでWordPressに投稿できますか
できます。WordPressのREST APIとアプリケーションパスワードがあれば、Claude Codeに書かせたスクリプトから POST /wp/v2/posts を呼んで投稿を作成できます。本記事では status を draft に固定する運用を推奨しています。
プラグインは必要ですか
REST APIは標準機能なので、投稿の作成だけならプラグインは不要です。MCP経由で操作したい場合は別途プラグインが必要ですが、2026年8月28日時点ではWordPress側のMCP実装が移行期にあります。
アプリケーションパスワードはどこで発行しますか
ダッシュボードのユーザー編集画面で発行します。WordPress 5.6以降の機能で、Basic認証(RFC 7617)で渡します。公式ドキュメントではHTTPSでの通信が前提とされています。
全自動で公開までやってよいですか
技術的には可能ですが推奨しません。Googleは検索順位の操作を主目的とした自動生成をスパムポリシー違反としており、誤った数値や古い情報が確認なしで公開されるリスクもあります。下書きで止めて人が判断する構成が現実的です。
WordPressに間違って公開されないようにできますか
三段構えで守れます。スクリプトに公開処理を実装しない、保存後にステータスを再取得して draft であることを検証する、PreToolUse フックで公開に該当する操作を終了コード2で拒否する、の三つです。
Claude CodeとClaude Agent SDKはどちらを使うべきですか
ターミナルやCIから回すだけならCLIの claude -p で足ります。承認コールバックや構造化出力をアプリに組み込むならAgent SDKです。SDKはPythonとTypeScriptのみ提供されています。
CIで動かすときの注意点はありますか
--bare を付けると、フック、スキル、サブエージェント、プラグイン、MCP、CLAUDE.mdの自動読み込みを飛ばすため、どの環境でも同じ結果になります。ただしサブスクリプションのログイン情報を使わないので ANTHROPIC_API_KEY が必要です。
出力をプログラムで扱うにはどうしますか
--output-format json を使うと、テキストが result フィールドに入った構造化JSONが返ります。形式を固定したい場合は --json-schema を併用すると structured_output に入ります。
費用はどれくらいかかりますか
Proは年払いで月17ドル、月払いで月20ドル、Maxは月100ドルからです。実行ごとの推定コストは --output-format json の total_cost_usd で確認できますが、公式には推定値であり実際の請求と異なる場合があると注記されています。
他人のリポジトリやサイトのデータを自動処理しても大丈夫ですか
注意が必要です。-p の非対話実行ではフォルダの信頼確認が行われず、--bare がなければプロジェクトの .claude/settings.json のフックや .mcp.json のサーバーが読み込まれます。信頼できない場所ではそのまま実行しないでください。
取得した外部記事の指示に従ってしまうことはありますか
プロンプトインジェクションの典型的な経路です。公式ドキュメントは、信頼できないコンテンツを直接パイプで渡さないこと、外部サービスとやり取りするスクリプトは仮想マシンで実行することを推奨しています。取得内容は指示ではなく資料として扱う設計にしてください。
記事の品質はどう担保しますか
人の目視だけに頼らず、機械で落とせる項目をスクリプト化します。可視文字数、表の数、見出し構成、リンク切れ、禁止表現、そして数値の再計算です。検証に落ちたら保存処理まで到達しないようにします。
WordPressのバージョンは関係ありますか
アプリケーションパスワードは5.6以降の機能です。2026年8月28日時点の公式リリース一覧では最新版は7.1で、安全に使えるのは7.1系の最新版だとされています。自動投稿を組む前に本体とプラグインを更新してください。
SEO的に不利になりませんか
制作方法そのものではなく内容で評価されます。Googleは人の役に立つ内容かどうかを重視する一方、順位操作目的の大量自動生成はスパムポリシー違反としています。一次情報からの独自の分析と、時点を明記した出典を入れることが対策になります。
まとめ

| 最終確認 | 答え |
|---|---|
| 現実的な自動化の範囲 | 調査から下書き保存まで。公開判断は人が行う |
| Claude Code側の要 | claude -p、--output-format json、--allowedTools、--permission-mode、フック、サブエージェント |
| WordPress側の要 | REST APIの POST /wp/v2/posts と status を draft に固定、アプリケーションパスワード |
| 事故対策 | 公開処理を実装しない、保存後に状態を検証する、フックで拒否する |
| 品質の前提 | 一次情報からの独自分析、出典と時点の明記、機械での再検証 |
| 情報の時点 | 2026年8月28日に公式ドキュメントで確認 |
Claude Codeによるブログ自動化は、記事を量産する仕組みとしてではなく、調べる、計算する、検証する、という手間のかかる工程を機械に任せる仕組みとして組むと成果が出ます。公開の判断だけを人が持てば、事故の規模は下書きの範囲に収まります。
最初の一歩としては、公開処理を持たない下書き保存スクリプトと、記事を落とす検証スクリプトの二つを作ることをおすすめします。ブログ運営の全体像や収益化の見通し、他のAIツールの使い分けもあわせて確認すると、どこを自動化すべきかが決めやすくなります。
