Tech Tag: XML

  • WordPressからHugoへのブログ移行体験記—うまくやるためのコツ

    WordPressからHugoへのブログ移行体験記—うまくやるためのコツ

    WordPressの記事をHugoにエクスポートして移行するのは、想像以上に難しかった。ツールが思った通りに動かず、自分で方法を探すことになったからだ。もしブログ移行を考えているなら、この話が参考になるかもしれない。

    よくあるツールの問題点

    まず、一般的なツールをいくつか試した。しかし、私の環境ではうまくいかなかった。具体的には次のような問題があった。

    WordPress to Hugo Exporterがエクスポートの途中でエラーを返したというのがある。

    私のサイトには「カスタム投稿タイプ(custom post types)」があり、通常の投稿やページ以外の特別な投稿が含まれていた。しかし通常のツールではこれらをうまく移せなかった。

    ExitWP-for-Hugoの活用

    簡単な方法がダメだったため、別の手順を試してみた。

    まずWordPressからXMLファイルとしてブログをエクスポート。

    そのXMLを exitwp-for-hugo というツールで処理。このツールは大きなXMLをHugo用の小さな.mdファイルに分けてくれる。

    1. カスタム投稿タイプの対応

    しかし、exitwp-for-hugo は最初カスタム投稿タイプを認識してくれなかった。通常の投稿しか変換しなかったのだ。

    そこで、exitwp.py スクリプトのどの投稿タイプを抽出するか決めている部分を自分で開いてみた。

    そこへ自分のカスタム投稿タイプを追加。

    これで、すべての必要な記事が移行できるようになった。

    2. Front Matterの修正

    Hugoは記事ファイルの先頭(Front Matter)の書式に決め事がある。

    ツールそのままだとFront Matterが三本線(—)で出力されるが、私が使っているHugoでのスタイルは三つのプラス記号(+++)だったのだ。

    そこで再びスクリプトを修正し、exitwp-for-hugoが最新のHugoスタイルでエクスポートするようにした。

    これでHugoが問題なくファイルを読み込めるようになった。

    Hugo移行にチャレンジする人へのTips

    WordPress上でプラグインがうまく動くなら、それが最も簡単なのだが、私の場合はプラグインはだめだったため、この方法に切り替えたわけだ。

    まずはカスタム投稿タイプがあるか確認しよう。もしあれば、exitwp-for-hugoをダウンロードして自分用にカスタマイズするのが確実だ。

    それと、Front Matterの形式が新しめのHugoのルールに準ずるものになっているか必ずチェックしよう。

    ローカル環境(テストモード)でHugoサイトを走らせ、エラーがないか確認すると安心だ。

    そして、念のため作業前に必ずバックアップを取っておこう。

    学んだこと

    WordPressからHugoへの記事移行は簡単ではなかった。しかし、工夫してファイルやスクリプトを修正すれば必ずできる。スクリプトの編集は私もAIに手伝ってもらった。そのおかげでコマンドラインやHugoの仕組みに対する理解も深まった。もし行き詰っても、ネットで調べることもできるし、AIに質問できるので今の時代は本当に便利になった。

    この体験記が、あなたのHugo移行の手助けになれば幸いだ。

    in , ,