こんにちは、Keiです。
今回は、長いあいだ眠っていた旧ブログの記事を WordPress に移行した話を書きます。「移行」と言うと聞こえはいいのですが、実態は20年近く放置していた日記の発掘作業です。
2003年から続く、自宅サーバーの歴史
自宅サーバーを始めたのは2003年、大学生のころです。情報系の学科にいたこともあり、「自分でサーバーを立てて運用してみたい」という気持ちは自然に湧いてきました。当時はまだブロードバンドが普及し始めた時期で、自宅に固定IPを引いてLinuxを動かすこと自体が、一種の達成感のある趣味でした。
ブログを書き始めたのは2005年ごろ。Movable Type というブログエンジンを使っていました。内容は技術ネタや日常の記録が混在した、完全な日記スタイルです。大学のゼミのこと、バイトのこと、買ったばかりのノートPCのこと。読み返すと、当時の自分の解像度でそのまま切り取られた断片が並んでいます。
15年間、眠っていた記事たち
社会人になっても数年は書き続けていましたが、東京での仕事が本格化するにつれ、更新は止まっていきました。毎日終電かタクシーで帰る生活では、ブログを書く余裕などありません。「また落ち着いたら書こう」と思っているうちに、気づけば15年ほどが経っていました。
サーバー自体は動かし続けていたので、旧ブログのデータは消えずに残っていました。ただ、Movable Type のシステムはほぼ触らない状態で、記事は外から見れば公開されているものの、実質的には誰も辿り着かない場所に静かに置かれていた、という状態です。
「いつか整理したい」とは思っていました。でも、何百件もの記事を手作業で移すのは現実的ではないし、スクレイピングスクリプトをゼロから書くのも億劫でした。そうして、「いつか」は何年も先送りになっていた。こういう「着手コストだけが高くて、後回しにしてきた作業」、思い当たる人も多いのではないでしょうか。
「移行しよう」と思い立った理由
今年、自宅サーバーのサイト全体を WordPress に移行しました。その流れで「旧ブログの記事も移せないか」と思い始めたのが、今回の作業のきっかけです。
もう一つ、正直な理由を言うと、Claude Code の存在が大きかったです。Claude Code は、ターミナル上で動く AI コーディングアシスタントです。「こういうことをしたい」と日本語で伝えると、スクリプトを書いてそのまま実行するところまでやってくれます。コードを自分で書く必要はありません。
以前は「更新が面倒くさい」という気持ちが、ブログを止めた一因でもありました。記事を書いて、HTMLを整えて、サーバーにアップロードして——という手順が地味にハードルになっていた。それが今は、Claude Code に話しかけるだけで投稿まで完結します。「また書けるかもしれない」という気持ちになったのは、この環境が整ってからです。
であれば、過去の記事も一緒に連れてきたい。そう思うのは自然な流れでした。
「旧ブログを WordPress に移行したい」の一言で動いた
Claude Code に伝えたのは、ほぼそれだけです。
「旧ブログが https://h.keikun.info/~blog/kei/ にある。記事を全部 WordPress に移行したい」
するとClaude Code は、移行に必要な処理を順番に考えて、Node.js スクリプトを生成しました。
- 旧ブログの月別アーカイブページを巡回して、記事の URL を全件収集
- 各記事ページからタイトル・本文・投稿日・カテゴリを抽出
- 記事内の画像を WordPress のメディアライブラリにアップロードして URL を差し替え
- WordPress REST API 経由で、元の投稿日時を保持したまま記事を登録
自分がやったことは内容を確認して「進めて」と伝えることだけです。スクリプトの設計から実行まで、Claude Code が一気に処理しました。
移行できた記事は 287 件。2005年から2009年にかけて書いた記事が、元の投稿日時のまま WordPress に並びました。
一つ笑えたのが、文字コードの変換がうまくいかなかった箇所で「マジカルバナナ」が「マグロバナナ」になっていたことです。意味はまったく変わりますが、見た瞬間に思わず声が出ました。技術的なトラブルが笑いで終わったのは、ありがたかったです。
記事の移植と並行して、静的 HTML と CSS で組んでいた元のサイトレイアウトを WordPress テーマとして再現する作業も行いました。こちらのほうが正直、記事の移植よりレベルが高い作業です。WordPress の template hierarchy や functions.php の設計など、自分一人でゼロから手を動かすには腰が重い領域でした。それでも Claude Code との対話で形になっていきました。
まとめ
「大変そうだな」と思っていた作業が、あっさり終わってしまいました。鶴の一声、という表現が近いかもしれません。287件の記事が動いた瞬間、スカッとした感覚があったのは確かです。
20年前に自宅サーバーを立ち上げて、15年以上放置していたブログが、今こうして WordPress の管理画面に並んでいます。当時の自分が書いた文章を、今の自分が同じサーバーで管理している。それ自体が、なんとなく感慨深い。
Claude Code が面白いのは、「やりたいことはあるけど手が動かない」という状況を崩してくれる点だと思います。スクリプトを書く技術がなくても、何をしたいかが言葉にできれば動き始めます。今回の移行作業がその一例でした。古いデータが眠っている、整理したいけど手をつけられていない——そういう人にとって、試してみる価値はあるかもしれません。
そして移行が終わった後も、Claude Code との付き合いは続いています。記事を書く作業そのものも、対話を通じてずいぶん変わってきました。そのあたりの話は、また別の機会に書くつもりです。
— Kei