目次
1. 結論:WordPress本体の再現は「ほぼ無理ゲー」
まず前提を整理します。Claude Codeで「WordPressを作る」と言ったとき、2つの意味があります。
❌ WordPressそのものを再現する──これはほぼ不可能
✅ WordPress的なCMSを設計・実装する──これなら十分に可能
WordPress本体を丸ごと再現するのは範囲が大きすぎるため、Claude Codeとは「WordPress風の機能を段階的に作る」方がはるかに相性が良いのです。この違いを理解しないまま着手すると、すぐに行き詰まります。
2. WordPressの再現が難しい5つの理由
これはAIの限界というより、WordPressという存在の特殊さに起因しています。
理由①:WordPressは「設計されたプロダクト」ではない
WordPressは20年以上にわたり、世界中の開発者が後方互換を最優先にしながら積み重ねてきた「歴史の堆積物」です。一貫した設計思想がありません。
一方、Claude Codeが得意とするのは、整った設計、明確な責務分離、現代的なアーキテクチャです。つまり相性が正反対なのです。
理由②:真の本体は「互換性地獄」にある
WordPressの価値は、数万のプラグイン、無数のテーマ、そして暗黙的な仕様の山にあります。たとえば、wp_postsテーブルにあらゆるデータを格納する設計や、postmetaのkey-value構造、グローバル変数への依存、フックの実行順序依存──これらは仕様書に書かれていない挙動こそが「仕様」です。
Claude Codeは明文化された仕様の実装は得意ですが、こうした暗黙の挙動を再現するのは苦手です。
理由③:フック・フィルタの仕組みが動的すぎる
WordPressの拡張性の核であるadd_actionやapply_filtersは、実行順が状況に依存し、他のプラグインの存在を前提とし、グローバルな状態に紐づいています。
add_action('init', ...)
apply_filters('the_content', ...)
この仕組みは静的な解析がほぼ不可能です。Claude Codeはコード全体を把握しようとしますが、WordPressは「実行してみないと分からない」世界です。
理由④:セキュリティと後方互換の板挟み
WordPressはPHP 5時代との互換性、最新の脆弱性対策、古いテーマの動作保証を同時に満たす必要があります。Claude Codeにこの課題を渡すと、モダンな書き方に直そうとしたり、型を導入しようとしたり、グローバル変数を除去しようとします。正しいアプローチではありますが、それをやった時点でWordPressではなくなるのです。
理由⑤:膨大なコードの中にある「意味のない複雑さ」
WordPressのコアは数十万行に及びますが、その複雑さの多くは高度な設計によるものではなく、歴史的経緯の産物です。「なぜこうなっているのか」に明確な理由がないコードを、Claude Codeは再構築のしようがありません。
3. 実際に作るとどうなるか──必ず「別物」になる
Claude Codeで「WordPressを作れ」と指示すると、出来上がるのは「WordPress的な思想を持つ、別のCMS」です。これには構造的な理由があります。
Claude Codeは「理由のある設計」しか作れない
Claude Codeは、責務分離・明示的なデータモデル・型やAPIの境界といった設計原則を前提にコードを生成します。WordPressの「歴史的経緯」「後方互換」「その場しのぎの積み重ね」とは設計思想が根本的に噛み合いません。
WordPressの「闇」をClaudeは再現しない
postmetaの無限key-value、グローバル状態への依存、実行順に左右されるフック、暗黙的な仕様──これらはWordPressの互換性の正体ですが、Claude Codeは代わりに型付きのメタデータ、明示的なフック、DIコンテナ、設定ファイルベースの構成を選びます。合理的な判断ですが、その時点でもうWordPressではありません。
Claude Codeが作る「別物CMS」の典型的な姿
実際にClaude Codeで構築すると、Post / Page / Custom Typeが明確に分離され、メタデータはJSONまたは型付き、フックの代わりにイベントやミドルウェアを採用し、REST APIを中心に設計され、管理画面はReactで構築される──いわば「理想化されたWordPress」が出来上がります。
WordPress
増改築を繰り返した巨大商店街
Claude Codeで作るCMS
商店街の思想を反映した新築ビル
同じ「商売」はできますが、構造はまったく異なります。
4. あえてWordPressに寄せる実験:どこで破綻するか
ここからが面白いところです。「どこまでWordPressに寄せられて、どこで無理になるのか」を明らかにする実験を考えてみます。
WordPressを完成させることではなく、「ここまでは寄せられる」「ここで必ず破綻する」「破綻理由を言語化できる」──この3点を明確にすることです。
Phase 1 データ構造だけWordPressに寄せる
まずwp_postsとwp_postmetaの構造をできるだけ忠実に再現させます。Claude Codeは一応作りますが、途中で必ず「これは正規化されていません」「JSONにした方が良いです」と指摘を始めます。すでにこの段階で思想の衝突が起きています。
Phase 2 フック機構を無理やり再現させる
次にadd_action / apply_filtersの仕組みです。Claude Codeはイベントバス、Observerパターン、ミドルウェアといったモダンな設計を使いたがりますが、WordPressのフックは実行順が暗黙的で、グローバル状態に依存し、他のプラグインの副作用を前提としています。ここが最初の明確な破綻点です。
Phase 3 テーマ・レンダリングで完全に破綻する
最後にthe_contentフィルタの忠実な再現を試みます。実行順に依存するHTML文字列の書き換え、プラグイン同士の競合──Claude Codeはほぼ確実に「これは安全で予測可能な設計ではありません」と判断し、拒否するか、勝手に改善してしまいます。
WordPressの本体は「設計」ではなく運用の歴史であり、「仕様」ではなく事故の積み重ねであり、「API」ではなく暗黙の了解です。Claude Codeは設計を作り、意図を説明し、破綻を嫌う──だからWordPressにはなれないのです。
5. Claude Codeの本当の活かし方
ここが一番重要なポイントです。Claude Codeの強みと限界を整理すると、以下のようになります。
| 目的 | Claude Codeとの相性 |
|---|---|
| WordPress完全互換のCMS | ❌ 不可能 |
| WordPress設計思想の再設計 | ✅ 非常に得意 |
| WordPress卒業用CMS | ✅ 最適な用途 |
| 学習・R&D | ✅ 非常に有用 |
| WordPress構造の言語化 | ✅ 得意 |
| 本質(Post / Meta / Hook)の抽出 | ✅ 得意 |
| プラグイン生態系の再構築 | ❌ 不可能 |
つまり、正しい問いの立て方はこうです。
Claude Codeで「WordPressを卒業するためのCMS」を作れるか?──答えはYES。
WordPressの良さは残しつつ、歴史的な負債は捨て、拡張性は設計で担保する。これがClaude Codeとの正しい付き合い方です。
この実験を通じて得られるのは、WordPressの負債マップ、「なぜWordPressはこうなったのか」への説明力、そして次世代CMS設計の根拠です。エンジニアとしてのWordPress理解を一段深めるという意味でも、非常に価値のある取り組みと言えます。
6. まとめ
WordPressは「作るもの」ではなく「積もったもの」です。
Claude Codeは「積もった歴史」を再現する道具ではありません。
しかし、「次のWordPress」を考える相棒としては最強です。
Claude Codeに限らず、AIを活用した開発で重要なのは「何を作らせるか」ではなく「どんな問いを立てるか」です。WordPressの完全な再現を目指すのではなく、WordPressから学び、その先にあるCMSを設計する──そのアプローチこそが、AI時代の開発において最も実りのある選択肢だと考えています。

