WordPressの記事を、いちいち管理画面を開かずに下書きまで作れたら楽だと思ったことはありませんか。実はWordPress標準の機能だけで、プラグインを追加せずに実現できます。この記事では、Claude CodeからWordPressに下書きを自動投稿する手順と、実際につまずいた点をまとめます。
使うのはWordPress標準の「REST API」
WordPress 5.6以降には、外部プログラムから安全に投稿を作成・更新できる「REST API」という仕組みが標準で入っています。特別なプラグインは不要です。
アプリケーションパスワードとは
認証には「アプリケーションパスワード」という機能を使います。WordPressのログインパスワードとは別に発行できる、用途ごとの専用パスワードです。万が一漏れても、その1つだけを無効化すればよく、本来のログインパスワードは影響を受けません。
アプリケーションパスワードの発行手順
- WordPress管理画面 →「ユーザー」→ 自分のプロフィールを開く
- ページ最下部の「アプリケーションパスワード」欄で、名前を付けて新規追加
- 生成された文字列を控える(この画面でしか表示されないので注意)
Claude Codeから投稿するときの設定
環境変数を設定する
サイトのURL、ユーザー名、アプリケーションパスワードを環境変数に設定します。パスワードは必ずダブルクォートで囲みます(理由は次の章)。
export WP_SITE_URL="https://example.com"
export WP_USERNAME="ユーザー名"
export WP_APP_PASSWORD="xxxx xxxx xxxx xxxx"
下書きを作成する
あとはClaude Codeに「この内容で下書きとして投稿して」と頼むだけです。裏では、REST APIの投稿作成(POST /wp-json/wp/v2/posts)に status を draft にして送っています。公開(publish)ではなく下書きにしておくのが安全です。
つまずきやすい点(実際に起きたこと)
パスワードのスペースで値が分割される
アプリケーションパスワードは、見やすさのために4文字ごとにスペースが入った状態で表示されます。これをそのままシェルの環境変数に設定すると、スペースの部分で値が分割されてしまい、エラーになります。設定するときは、必ず値全体をダブルクォートで囲んでください。
セキュリティ機能でリクエストが止まる
サイトによってはセキュリティ機能が働き、「下書き状態の記事を、編集用の詳細情報つきで一覧取得する」といった組み合わせのリクエストを、不審なアクセスとみなして応答を止めてしまうことがあります。一覧を取得したいだけなら、必要最小限の情報だけを求めるようにすると安定します。
SEOの説明文やタイトルも自動設定できる
SEO SIMPLE PACKを使っているサイトなら、固定ページの説明文(ssp_meta_description)などもREST APIで書き込めます。実際に、当サイトの固定ページ3つの説明文を設定できました。
ただし、カテゴリの説明文はREST APIに公開されておらず、書き込めませんでした。こちらは管理画面での手入力が必要です。使っているSEOプラグインによって公開される項目は変わるので、事前に GET /wp-json/wp/v2/pages の meta を見て確認すると確実です。
できるようになること・運用のコツ
この仕組みを使うと、記事の下書き作成・内容の更新・一覧確認までを、コマンド操作だけで行えます。公開ボタンを押す作業だけは、これまでどおり管理画面から自分の手で行う形にしておくと、確認の手間を省きすぎずに済みます。この記事自体も、その仕組みで下書きとして投稿し、内容を確認してから公開しました。
よくある質問
Q. プラグインは必要ですか?
A. 不要です。WordPress 5.6以降の標準のREST APIとアプリケーションパスワードで実現できます。
Q. アプリケーションパスワードが漏れたらどうなりますか?
A. 該当のパスワードだけを管理画面で無効化すれば止められます。ログインパスワードは影響を受けません。
Q. 公開まで自動でして良いですか?
A. 下書きまでにして、公開は管理画面で内容を確認してからにするのをおすすめします。
Q. 投稿のリクエストが応答しなくなりました。
A. セキュリティプラグインが不審なアクセスとみなしている可能性があります。取得する項目を必要最小限にして試してください。
あわせて読みたい
- Obsidianで最強のナレッジ管理!第二の脳を作るコツとNotionとの違い(内部リンク)
- WordPress収益化戦略ガイド(内部リンク)


コメント