「作業ログをそのまま記事にできたら楽なのに」——そう思ったことはないだろうか。
開発中のメモ、トラブルシュートの記録、セットアップ手順。どれも「後で記事にしよう」と思いつつ、結局どこかに埋もれていく。
そこで作ったのが、「記事にして」と言うとClaude CodeがWP-CLIを使ってWordPressに下書き保存してくれる仕組みだ。Claude Codeが動いているサーバーから直接ロリポップのWordPressに投稿できるようにした。
構成のポイント
構成はシンプルで、3つのピースを繋いでいる。
- Claude Code(LXCサーバー):会話の内容を把握・要約してWP-CLIコマンドを組み立てる
- SSH鍵認証:LXCサーバーからロリポップSSHへの鍵認証を設定(ed25519)
- WP-CLI:WordPressへの投稿をコマンドラインから実行
セットアップ手順
1. LXCサーバーからロリポップへのSSH鍵認証を設定
まずClaude Codeが動いているLXCサーバー上でSSH鍵を生成する。
ssh-keygen -t ed25519 -C "claudecode@lxc"
生成した公開鍵(~/.ssh/id_ed25519.pub)をロリポップの ~/.ssh/authorized_keys に追記する。
# ロリポップSSHに接続(初回はパスワード認証)
ssh -p 2222 アカウント名@ssh.lolipop.jp
# authorized_keysに公開鍵を追記
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "公開鍵の内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
以降はパスワードなしで接続できる。
ssh -p 2222 アカウント名@ssh.lolipop.jp # パスワードなしで繋がればOK
2. WP-CLIの動作確認
ロリポップではWP-CLIが使えるが、phpのフルパス指定が必要だ。
/usr/local/bin/php8.2 /home/users/2/アカウント名/wp-cli.phar post list \
--path=/home/users/2/アカウント名/web/blogPocketlog/ \
--post_status=draft 2>&1
ドラフト一覧が返ってきたら準備完了。
3. CLAUDE.mdにトリガーを記述する
Claude Codeは CLAUDE.md に書かれた指示に従って動く。ここに「記事にして」と言ったときの動作を定義しておく。
## WordPressへの下書き保存
「記事にして」と言われたら、会話の内容を要約してWP-CLIで下書き保存する。
- SSH: ssh -p 2222 アカウント名@ssh.lolipop.jp
- WP-CLI: /usr/local/bin/php8.2 /home/users/2/アカウント名/wp-cli.phar
- WordPressパス: /home/users/2/アカウント名/web/blogPocketlog/
- カテゴリID: 235(ネタ)
- ステータス: draft
これだけで、Claude Codeは「記事にして」というトリガーを受けて自動的にSSHでロリポップに接続し、WP-CLIで下書き保存してくれるようになる。
実際の使い方
たとえばcarcamp(自分が運営している車中泊サービス)の開発中にこんな使い方ができる。
- 「PostGISで地点間距離を計算するクエリを書いて」→ Claude Codeが実装
- (実装が完成したら)「記事にして」→ 実装メモがWordPressに下書き保存される
ラズパイカーナビの開発ログ、自宅サーバーのセキュリティ設定メモ、WordPressのプラグイン整理作業など、「やったこと」をそのまま記事の種にする流れが自然に作れる。
ポイントと注意点
- SSH鍵は必須:パスワード認証だとClaude Codeが毎回止まる。鍵認証を先に設定しておく
- phpフルパス指定:ロリポップでは
~のパス展開が失敗する場合がある。フルパスで書く - 下書き保存のみ:自動公開はしない設計にしている。内容確認→手動公開のフローで品質を担保
- カテゴリ「ネタ」で管理:下書きが溜まったらまとめて記事化する運用
まとめ
Claude Code + WP-CLI の組み合わせは、「作業ログ → 記事」の変換コストをほぼゼロにしてくれる。
書くことへのハードルが下がると、アウトプットの量が増える。完璧な記事を書こうとするより、作業の副産物として記事が生まれる仕組みを作る方が長続きする。
技術ブログを書きたいけど続かない、という人にこそ試してほしい仕組みだ。