こんにちは、ゆーりんちです。このブログ「ゲ制工房」は、長年使ってきたWordPressから、Cloudflare上で動く新しいCMS「EmDash」に移行しました。いま読んでいただいているこのページも、EmDashで表示しています。
移行にかかったのは、たった1日。作業はほぼすべて、AIのClaude Codeにやってもらいました。
今回は、WordPressから移行しようと思った背景、EmDashとはどんなCMSなのか、移行してよかったこと、そして移行前にチェックしたことや注意点について解説します。WordPressからの引っ越しを考えている方の参考になればうれしいです。
WordPressから移行しようと思った背景
PHPの脆弱性「PHP2Shell」対応
2026年10月21日、PHPに深刻な脆弱性が見つかったというニュースが流れ、世界中で対応が求められました。高市首相が公式Xで対応を呼びかける異例の事態でした。
通称「PHP2Shell」と呼ばれるこの脆弱性は、ログインしなくても、細工した通信を送るだけでサーバー上でプログラムを実行されるおそれがあるという、とても危険なものです。深刻度はCVSS v4.0で9.2(10点満点)。しかも報道が始まった時点では、修正版がまだ出ていませんでした(参考:IT用語辞典 e-WordsのPHP2Shellの解説)。
幸い、このサイトが攻撃を受けたわけではありません。ただ、WordPressそのものに問題がなくても、土台のPHPが危なければサイトは危険にさらされます。しかも修正版が出るまでのあいだは、自分ではどうしようもありません。
WordPressを使い続ける限り、こうしたニュースが出るたびに慌ててアップデートすることになります。ニュースを見て、あらためてその怖さを実感しました。
WordPressはAIとの相性がよくない
最近は、ブログの記事を書いたり直したりするときにAIを使う場面が増えてきました。ところがWordPressの記事は、HTMLとブロックの区切りのコメントが混ざった形で保存されていて、AIに扱わせるのが難しいと感じていました。詳しくは後ほど書きます。
Cloudflareが好きすぎる
一番大きいかもしれない理由がこれです。私はCloudflareが大好きで、いま公開しているWebサービスのほとんどをCloudflareで動かしています。ブログだけ別のサーバーにあるのが、ずっと気になっていました。
ブログも同じCloudflareにまとめて、管理を楽にしたい。そう考えていたところに登場したのが、EmDashでした。
EmDashってなに?
WordPressの「精神的な後継」
EmDashは、Cloudflareが2026年4月に発表した、オープンソースのCMSです。Cloudflareは、EmDashをWordPressの「精神的な後継(spiritual successor)」と呼んでいます(参考:Cloudflare公式ブログのEmDash発表記事)。
- TypeScriptで書かれていて、Webフレームワーク「Astro」の上で動く
- ライセンスはMIT(ソースコードはEmDashのGitHubで公開されています)
- WordPressのコードは使っていない。そのため、PHPもWordPressのテーマやプラグインも動かない
発表当初はプレビュー版でしたが、2026年9月28日に安定版の「EmDash 1.0」が公開されました(参考:Cloudflare公式ブログのEmDash 1.0の記事)。ちなみに、Cloudflareの公式ブログ自体もEmDashで動いています。
EmDashの仕組み
EmDashは、Astroで作ったサイトの中に、管理画面とCMSの機能がまとめて組み込まれています。CMSとサイトが別々のサービスではなく、ひとつのアプリとしてデプロイできるのが特徴です。

記事はデータベースに保存され、ページを表示するたびに読み込まれます。管理画面で記事を公開すると、次のアクセスからすぐに反映されます。
ゲ制工房では、次のCloudflareのサービスで動かしています。
WordPressの用語との対応
WordPressを使っていた人向けに、用語の対応をまとめておきます。
WordPress | EmDash |
|---|---|
投稿タイプ | コレクション |
カテゴリー・タグ | タクソノミー |
テーマ(PHPのテンプレート) | Astroのページとコンポーネント |
ブロックエディター(Gutenberg) | Portable Text |
プラグイン | EmDashのプラグイン |
「Posts」と「Pages」の違い
EmDashの管理画面を開くと、記事を書く場所が「Posts」と「Pages」の2つに分かれています。WordPressでいう「投稿」と「固定ページ」にあたるものです。
- Posts(投稿):日々書いていくブログ記事。カテゴリーやタグを付けられて、記事一覧・RSS・カテゴリー別の一覧に並びます。公開日時を指定した予約投稿もできます
- Pages(固定ページ):お問い合わせ、プライバシーポリシー、ツールの使い方マニュアルのような、日付に関係なく置いておくページ。カテゴリーやタグは付けず、記事一覧にも並びません
迷ったら「日付が意味を持つならPosts、ずっと同じ場所にあってほしいならPages」と考えると分かりやすいです。ちなみにこの記事はPostsで、お問い合わせフォームやプライバシーポリシーはPagesで作っています。
WordPressと違うのは、このPostsやPagesが「コレクション」という仕組みで作られていることです。コレクションごとに入力する項目(タイトル、本文、アイキャッチなど)を自由に決められて、必要なら「お知らせ」「作品紹介」のような新しいコレクションを管理画面から追加することもできます。
AIとつながる前提で作られている
EmDashには、AIとつながるためのMCPサーバーが最初から入っています。ClaudeやChatGPTなどのAIから、記事やメディア、カテゴリーを直接操作できます(参考:EmDash公式ドキュメントのAI連携ガイド)。
AIに与える権限も、管理者・編集者・投稿者・寄稿者といった役割で制限できます。「AIには下書きの作成だけ許可する」といった使い方もできます。
WordPressから記事を取り込める
EmDashには、WordPressの記事を取り込む機能があります。方法は、WordPressの書き出しファイル(WXR)を使う方法と、「EmDash Exporter」というプラグインを使う方法の2つです(参考:EmDash公式ドキュメントのWordPress移行ガイド)。

ゲ制工房では、EmDash Exporterを使いました。WordPressにプラグインを入れて、EmDashの管理画面からつなぐだけで、記事、カテゴリー・タグ、画像、コメントなどをまとめて取り込めます。
画像はEmDash側がダウンロードしてR2に保存し直し、本文中の画像のURLも書き換えてくれました。
移行してよかったこと
AIが記事を直接編集できる
一番ありがたいのが、これです。
EmDashでは、記事がPortable Textという構造化されたデータで保存されています。「ここは見出し」「ここは段落」「ここは画像」と、記事の部品がはっきり分かれているので、AIが段落や画像の単位で記事を扱えます。
さっそく、過去の記事の誤字脱字をAIにまとめて直してもらいました。昔の自分の記事はまごうことなき人間である私が書いているのですが、いかんせん誤字脱字がいくつかあってずっと気になっていました(「じゃあとっとと直せよ」ではあるんですが面倒で...)。
手作業で全部直すのは大変で放置していましたが、今回そういった過去の記事の誤字脱字も一気にキレイになりました。
WordPressのMCPとの違い
実は、WordPressにもAIから操作するためのMCPはあります。私も、WordPress公式の「MCP Adapter」プラグインと、Automatticの「mcp-wordpress-remote」を組み合わせて使っていました。
ただ、MCP Adapterでできることは、WordPress側に登録された「Ability(AIに許可する操作)」で決まります。
WordPress本体には、記事を細かく編集するためのAbilityがまだありません。私の環境では、書式の細かい調整や、段落のあいだに画像を入れるといった操作はできませんでした。
なお、WordPress.comのMCPや、サードパーティの「Block MCP」のように、ブロック単位で編集できるものも出てきています。WordPressでも、組み合わせ次第ではできるのかもしれません。
一方のEmDashでは、標準で入っているMCPサーバーを使って、AIが記事を直接扱えます。ちなみにEmDashの公式ドキュメントにも「複雑な書式は管理画面のエディターで調整するのがおすすめ」と書かれているので、何でもAIで完璧にできるわけではありません。それでも、記事の構造がはっきりしているぶん、WordPressよりずっとAIに任せやすいと感じています。
この記事も、VSCodeで書いてそのまま公開
実はこの記事自体も、VSCodeの中でClaude Codeとチャットしながら書いています。
記事は、リポジトリの content/posts/<スラッグ>/index.md にMarkdownで書き、画像も同じフォルダに置きます。書き終えたら、次のコマンドを1つ実行するだけで本番のEmDashに送られ、記事が公開されます。
pnpm publish-post 20261025emdash記事がMarkdownのファイルとしてリポジトリに残るので、そのままGitHubで履歴も管理できます。構成を考えて、事実を調べて、書いて、公開するまで、エディターから一歩も出ずに完結するのはかなり快適です。
移行作業そのものもAIにお任せ
冒頭でも書いたとおり、今回の移行は1日で終わりました。記事の取り込み、デザインの作り直し、足りない機能を補うプラグインの作成まで、作業はほぼすべてClaude Codeにやってもらっています。
EmDashは、AIが扱いやすいように作られたCMSです。それを実感したのが、この移行作業そのものでした。
WordPressから移行するデメリット:デザインテーマを持ってこられない
ゲ制工房では、WordPressのテーマ「SWELL」を使っていて、結構気に入っていました。
ただ、EmDashではWordPressのテーマは動きません。そこで、EmDash側でSWELLに似たデザインを作り直して当てることにしました。
移行前と移行後を比べてみます。
トップページ


記事ページ


ヘッダー、記事の見出しのデザイン、サイドバーは、ほぼそのまま再現できました。記事ページでは、WordPress時代から引き継いだ閲覧数も表示しています。
まったく同じデザインで引き継げないのは残念ではありますが、逆に言えば、今後デザインをカスタムしやすくなったとも言えます。
WordPressのプラグインはどうなったか
WordPressでは、十数個のプラグインを使っていました。EmDashに移るにあたって、それぞれ次のように置き換えています。
用途 | WordPress(SWELL) | EmDashでの置き換え | 区分 |
|---|---|---|---|
SEO | SEO SIMPLE PACK | 標準のSEO機能 | 標準機能 |
コメントのスパム対策 | Akismet | コメントの承認機能 | 標準機能 |
AI連携 | WordPress MCP | 最初から入っているMCPサーバー | 標準機能 |
お問い合わせフォーム | WPForms Lite | 公式のFormsプラグイン | 公式プラグイン |
フォームのスパム対策 | reCAPTCHA | Formsプラグインのハニーポット機能 | 公式プラグイン |
メール送信 | WP Mail SMTP | 自作プラグイン(Cloudflare Email Service経由) | 自作 |
閲覧数 | SWELLの閲覧数機能 | 自作プラグイン「site-stats」 | 自作 |
いいねボタン | WP ULike | 自作プラグイン「site-stats」に統合 | 自作 |
コードの色分け | Highlighting Code Block | テーマ側で再現(Prism) | 自作(テーマ) |
吹き出し・ブログカードなど | SWELLのブロック | テーマ側で部品として作り直し | 自作(テーマ) |
アクセス解析 | MonsterInsights、Jetpackの統計、Slimstat | GA4のタグを直接埋め込み | プラグインなし |
広告 | AdSense、Ad Invalid Click Protector | AdSenseのタグとads.txt | プラグインなし |
SEO、コメントの承認、サイトマップ、リダイレクトといった機能は、EmDashに最初から入っています。WordPressのようにプラグインを入れる必要はありません(参考:EmDash公式ドキュメントのSEO機能の解説)。
一方で、メール送信や、閲覧数・いいねの機能はEmDashの標準にはないので、プラグインを自作しました。これもClaude Codeに作ってもらっています。WordPressでは閲覧数(SWELLの機能)といいね(WP ULike)が別々でしたが、ひとつのプラグインにまとめられたので、むしろスッキリしました。
移行前にチェックしたこと
移行するにあたって、特に気をつけてチェックしたのは次の点です。
いいね数と閲覧数を引き継げるか
ブログのモチベは、やはりPV数といいね数です。この数がどんどん累積して溜まっていくのが、ブログをやる最高の楽しみです。

閲覧数やいいね数は、WordPressのテーマやプラグインが独自に保存しているデータです。EmDash Exporterでは移せません。
そこで自作プラグイン「site-stats」を作り、WordPress時代の数字を引き継ぎました。閲覧数は取り込んだ記事のデータから、いいね数はWP ULike(WordPressのプラグイン)の表示から集めて取り込んでいます。
お問い合わせフォームから送信できるか
WordPressでは、WPFormsというプラグインを使って、各種お問い合わせフォームを作っていましたが、EmDashには公式でフォームプラグインがありました。これは大変ありがたかったですね。

WordPressでは「一般のお問い合わせ」「お仕事のご依頼」「広告出稿のお問い合わせ」の3つに分かれていたフォームを、選んだ種類によって項目が切り替わる1つのフォームにまとめました。送信したメールは、自作プラグインからCloudflare Email Serviceを使って届くようにしています。

まとめ
WordPressからEmDashへの移行は、思っていたよりずっとスムーズでした。
- PHPを使わないので、PHP2Shellのような脆弱性に振り回されずに済む
- AIが記事を直接編集できるので、過去記事の手直しが一気に進んだ
- 記事をGitHubで管理できる
- 推しのCloudflareに、ブログもまとめられた
一方で、デザインテーマは持ってこられず、作り直しが必要でした。プラグインの機能に大きく頼っているサイトは、同じ機能が標準や公式プラグインにあるかを先に確認しておくと安心です。足りないものは、自作する必要性が出てきます。
まだまだ発展途上のCMSではあると思いますが、Cloudflareが好きな方、AIと一緒にブログを育てていきたい方には、とても刺さるCMSなのではないかと思います。
それでは、素敵なゲーム制作ライフを!
ゲームの素材探しに困っていませんか?
ゲームのUI素材探しなら、Free Game UI Assets がオススメです!
完全無料で著作権フリーな、UIのアセット素材がなんと1700以上使い放題!
ぜひ、こちらもチェックしてみてください。



No comments yet