ブログを毎日更新していると、ネタ管理/下書き/公開を行ったり来たりするだけで時間が溶けます。
この記事で紹介するのは、「Notion 1つで全部メタ管理する。WordPress は公開の場として使い切る」という運用です。間をつなぐのは、Claude Code に作ってもらったPython の自前スクリプト。プラグインも有料SaaSも使っていません。
今日は、その全体像と中身を、図を交えて公開します。
結論:3つの役割分担にする
頭の中をシンプルにするコツは、3つに役割を分けて、それぞれの得意を活かすことでした。
| 場所 | 役割 | 例 |
|---|---|---|
| Notion(DB) | メタデータ管理 | Status・Target KW・公開日・URL |
| ローカル MD(drafts/*.md) | 本文の正本 | 執筆・修正・git で履歴管理 |
| WordPress | 公開の場 | 下書き→プレビュー→予約/公開 |
Notion は管理が得意。WordPress は公開が得意。両方を「中の人=Python」がつなぐ、というイメージです。

なぜプラグインではなく自前にしたか
最初は「WP Sync for Notion」プラグインも候補に挙がりました。一発で連携できて便利です。
それでもやめた理由は2つです。
- Notion 側のスキーマがプラグインの都合に縛られる:自分の運用に合わせたい
- 修正のラウンドトリップ(WP→Notion/WP→MD)が想定されていない:双方向同期は自前のほうが速い
「全部入りより、自分の運用にぴったり」を選びました。AI を相棒にすれば、自分専用のツールは思ったより早く作れる時代です。
実際の流れ(STEP 01〜05)
毎日の運用は、この5ステップに固定しています。
📚 コンテンツパイプライン DB に新規ページを追加し、記事一覧を作成します。
タイトル・Status・Cluster・Target KW・コンテンツタイプ などを埋めていきます。
ここがメタの起点。書く前にメタが整っていることが、後工程の摩擦をなくす一番のコツでした。

content/drafts/<Article ID>-<slug>.md に書きます。
Notion 上で書くこともできますが、長文の編集に向いていないので分けました。

WP REST API(/wp-json/wp/v2/posts)を叩いて、WordPress に下書きとして自動投稿します。
要点は3つ:
これで、Notion を見ながら python3 scripts/notion_to_articles.py 一発で下書きまで反映できます。
WP の下書きを開いてプレビュー。必要なら直接エディタで仕上げます。アイキャッチ、SEO(SSP)メタ、内部リンクはここで最終確定。

公開ボタンを押したら、Python で Notion を更新します。
これで、Notion を見れば 「いつ・どこに・何を出したか」が常に一目で分かる状態になります。

ここがポイント:修正の「ラウンドトリップ」

実運用で一番痛いのは、WP で直接直したのに、ローカル MD が古いままになることです。気づかず次回 push で上書き事故が起きます。
対策は2つ。
① ローカルから直すときは「最新取得→外科置換→push」
ローカル MD を全部 push するフル上書きはやらない。
WPから最新本文を取得し、差分だけ str.replace で書き換えて戻す。
# 最新取得(context=edit で raw を取る)
r = requests.get(f"{WP_BASE}/wp-json/wp/v2/posts/{pid}?context=edit", auth=auth)
content = r.json()["content"]["raw"]
# 該当箇所だけ置換
content = content.replace("<h2>古い見出し</h2>", "<h2>新しい見出し</h2>")
requests.post(f"{WP_BASE}/wp-json/wp/v2/posts/{pid}", auth=auth, json={"content": content})
こうすると、WPで本人が直した加筆を壊さずにピンポイント修正できます。
② WP で直したら「逆同期」でローカル MD に戻す
定期的に WP から本文を取って、ローカルMD を WPの現状に合わせるスクリプトを走らせます。
こうすれば、ローカルMD と WP がズレたまま放置されることがありません。
何で作ったか(Claude Code に頼んだ)
このスクリプトは Claude Code に作ってもらいました。設計を Claude(チャット)と相談し、実装は Claude Code に依頼する形です。
頼み方のコツは「いきなり全部」ではなく、1機能ずつ・確認しながら進めること。
- Notion のページを1件取得して中身を表示するだけ
- 1件を WP に下書き push するだけ
- 画像を WP メディアに upload するだけ
- Notion の Status を更新するだけ
- 全部を一連の流れで回す
最初の1〜2は5分、合計でも数時間で動く形になりました。
「自分専用のミニツールを、AI と一緒に作る」——これが時短の本丸だと感じています。
まとめ
| 設計 | 内容 |
|---|---|
| Notion | メタの真実のソース |
| ローカル MD | 本文の正本(git管理) |
| WordPress | 公開の場 |
| Python | 三者をつなぐ「中の人」 |
| 修正 | 外科置換+逆同期で双方向に巻き戻し事故ゼロ |
プラグインや有料SaaSに頼らず、AI と組めば「自分の運用に完璧にフィットしたパイプライン」を持てる時代です。
【無料・自作OK】参考とソース
このスクリプトのフル実装は、整理して公開予定です(GitHub)。「自分用にカスタマイズしてみたい」「うちの運用にも組み込みたい」という方は、お気軽に X(@moreoweb)から声をかけてください。
参考にした記事・公式
- WordPress REST API 公式:https://developer.wordpress.org/rest-api/
- Notion API 公式:https://developers.notion.com/
- WP Sync for Notion プラグイン(プラグイン派の人向け)
この記事はWordPressへ投稿するところまでの流れの話です。Claude Code と Notion のつなぎ方そのもの(MCP とトークンの2通り)は Claude CodeとNotionを連携する方法 にまとめています。先にそちらを読むと、この記事のSTEP 01がつながります。
そもそもWordPressをこれから始める方は MacでWordPressブログを始める方法 からどうぞ。
AI活用のご相談はこちらから
「AIを仕事に取り入れたいけれど、どこから手をつければいいか分からない」
——そんなときは、お気軽にご相談ください。
どの作業をAIに任せられるか、一緒に整理するところからお手伝いしています。


