ここは、技術情報、身の回りに起こった出来事を、「もしかしたらみんなの役に立つかもしれない」と思って書き留めておく場所です。

Image

AIを使ってブログをCMSごと作り直した話

2026年4月13日

レンタルサーバーを引っ越しました。

今まではPHP7.4で動作していたため、ついでにPHP8.Xで動作するようにブログを修正したかったのです。

 

今までの動作環境

ブログ作成に使用していたCMSは割とマイナーな

GetSimple CMS

というものです。PHP製でデータベースを使用しないという特徴があります。

選択理由は

  • 管理が面倒ではない(運用の簡略化): データベースの設定や保守が必要ないため、システム構築や維持における手間が少なくなります
  • セキュリティ上のリスク軽減: 使用していたCMSがマイナーであったことも理由の一つですが、データベースを使用しない構成は、一般的なデータベースを狙った攻撃を受けにくいという特徴があります
  • カスタマイズの容易さ: システムがシンプルであるため、独自の改造が比較的簡単に行えます

です。

GetSimpleでは、ブログのコンテンツはどこに保存されるのかといえば、XMLファイルに保存されています。

このGetSimpleを魔改造した上に、Bootstrap4でフロントを構築していたものが、旧環境になります。

 

バージョンアップは無理だが移行はしたい

魔改造してあるので、バージョンアップして差分を反映…って躊躇しますね。とてもできません。

なので、とりあえず今のままブログを公開できることを目標とします。

最初に一つのページを選び、ブラウザのソースからHTMLを持ってきて静的ファイルとして保存します。

そのHTMLをAIを使ってBootstrap4→Bootstrap5に変換してもらいます。

 

Twigテンプレート変換

ここでcomposerを用いてtwigをインストールします。

先ほど変換したHTMLの本文の部分は切り抜いて、継承元のtwigファイルを作ります。

あとは継承元のtwigファイルを使った、各ページのtwigファイルをAIに作ってもらいます。

変換元はGetSimpleのXMLで、テンプレートファイル名はページのスラッグとします。

 

しばらく待つだけで全部のページができました。うーん、AI使うと楽だね。

 

ルーティング

各ページをブログとして表示するためには、URLのスラッグに対応するテンプレートを読んで出力する部分を作ればOKです。

個々のページはそれでよいのですが、インデックスページをどうするかという問題が残りました。

GetSimpleはページのリストもXMLで管理しているので、AIを使ってXMLをJSON形式に変換してもらいました。

ブラウザからURLを受け取った後、JSON内に対応するスラッグがあれば、存在しているページということでテンプレートを読みに行きます。これで個々のページに対応するルーティングは完成です。

カテゴリ、日付、タイトルなどもJSONで同時に管理して、インデックスページは自動出力する方式としました。以前までは手作業でインデックスページを作っていました。

とここまで作らせて、JSONで管理する意味がまるでないので、JSONからPHPの配列に変換してもらってPHPの配列そのままで管理する方式としました。

 

細々した機能

あとは、sitemap.xmlとかあったわ。ということでAIに一瞬で作ってもらいました。 sitemap.xmlのキャッシュとページのリストを管理するPHPファイルの更新時間を比較して、古い場合のみキャッシュを作り直すことにしました。

と、この記事を書きながらアクセス解析もあったわ。ということでAIにまたも一瞬で作ってもらいました。ブログ組み込みです。

 

WYSIWYGエディタどうする?

これで90%AI製のCMS?が公開できたのはいいのですが、どうやって新しいブログを書くのか?という問題が残っていました。

WYSIWYGエディタを組み込もうと思ったのですが、ピンときたものがなかった(組み込む手間に対してリターンが少ない)ので、Markdownで書くことにしました。

「VSCodeを使ってMarkdownで書く→AIにTwigテンプレートに変換してもらう」でいいんじゃないの!ということで、この記事はMarkdownで書いています。

WYSIWYGエディタで書いても、途中でHTMLモードに切り替えて記述したり、非公開モードでブラウザを見ながらHTMLモードで調整していたので、今後は直接テンプレートを編集できるようになったのでかなり手間が減りました。

 

終わりに

Bootstrap4+jQuery+GetSimpleからBootstrap5+オリジナルになりました。

見た目はほぼ変わっていないですが、裏では自動制御が多くなってとても楽になりました。

今のところメリットは

  • php -Sを使えばローカルでブログがそのまま起動するので、調整が簡単
  • Gitで丸ごと管理できるのでソース管理とバックアップが同時にできる
  • ブログのカスタマイズもAIに丸投げできるので全く苦労しない

です。デメリットは特にないですね。

一般的にDBを使わないデメリットは「検索・ソートでDBの機能が使えない」「複数ユーザーでの管理」等ありますが、個人の小規模ブログにおいては全く関係ない話ですし、むしろDBアクセスがない分かなり高速になっているはずです。

キャッシュされてるテンプレートを表示しているだけなので。