わかりやすいUnityゲーム開発解説

さよならWordPress。ゲ制工房は新時代のCMS、EmDashに移行しました。

さよならWordPress AIネイティブなCMS、EmDashにすべて移行してみた

こんにちは、ゆーりんちです。このブログ「ゲ制工房」は、長年使ってきた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とサイトが別々のサービスではなく、ひとつのアプリとしてデプロイできるのが特徴です。

EmDashの管理画面で、この記事を編集しているところ
EmDashの管理画面。この記事もここで編集できます

記事はデータベースに保存され、ページを表示するたびに読み込まれます。管理画面で記事を公開すると、次のアクセスからすぐに反映されます。

ゲ制工房では、次のCloudflareのサービスで動かしています。

  • Workers:サイトとCMSを動かす実行環境
  • D1:記事や設定を保存するデータベース
  • R2:画像などのファイルの保存先

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の「WordPressからインポート」画面
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に似たデザインを作り直して当てることにしました。

移行前と移行後を比べてみます。

トップページ

移行前のトップページ(SWELL)
移行前(SWELL)
移行後のトップページ(EmDash)
移行後(EmDash)

記事ページ

移行前の記事ページ(SWELL)
移行前(SWELL)
移行後の記事ページ(EmDash)
移行後(EmDash)

ヘッダー、記事の見出しのデザイン、サイドバーは、ほぼそのまま再現できました。記事ページでは、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数といいね数です。この数がどんどん累積して溜まっていくのが、ブログをやる最高の楽しみです。

自作プラグイン「site-stats」のアクセス統計。累計ページビュー728,255、累計いいね268
管理画面のアクセス統計。WordPress時代の数字をそのまま引き継いでいます

閲覧数やいいね数は、WordPressのテーマやプラグインが独自に保存しているデータです。EmDash Exporterでは移せません。

そこで自作プラグイン「site-stats」を作り、WordPress時代の数字を引き継ぎました。閲覧数は取り込んだ記事のデータから、いいね数はWP ULike(WordPressのプラグイン)の表示から集めて取り込んでいます。

お問い合わせフォームから送信できるか

WordPressでは、WPFormsというプラグインを使って、各種お問い合わせフォームを作っていましたが、EmDashには公式でフォームプラグインがありました。これは大変ありがたかったですね。

EmDashのFormsプラグインでフォームの項目を設定する画面
Formsプラグインの設定画面

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

完成したお問い合わせフォーム
完成したお問い合わせフォーム

まとめ

WordPressからEmDashへの移行は、思っていたよりずっとスムーズでした。

  • PHPを使わないので、PHP2Shellのような脆弱性に振り回されずに済む
  • AIが記事を直接編集できるので、過去記事の手直しが一気に進んだ
  • 記事をGitHubで管理できる
  • 推しのCloudflareに、ブログもまとめられた

一方で、デザインテーマは持ってこられず、作り直しが必要でした。プラグインの機能に大きく頼っているサイトは、同じ機能が標準や公式プラグインにあるかを先に確認しておくと安心です。足りないものは、自作する必要性が出てきます。

まだまだ発展途上のCMSではあると思いますが、Cloudflareが好きな方、AIと一緒にブログを育てていきたい方には、とても刺さるCMSなのではないかと思います。

それでは、素敵なゲーム制作ライフを!

ゲームの素材探しに困っていませんか?

ゲームのUI素材探しなら、Free Game UI Assets がオススメです!

完全無料で著作権フリーな、UIのアセット素材がなんと1700以上使い放題!

ぜひ、こちらもチェックしてみてください。