朝からずっとHugoをいじっている。

WordPressからHugoへ移行する作業を進めている。

思ったとおりにできたり、できなかったりするけどそれが楽しい。 HugoはGo言語で出来ているが、その言語の知識が必要になる場面は今のところない。 記事ファイルはマークダウンの書式がわかれば良いのでHTMLの知識もいらない。

wordpress-to-hugo-exporter

WordPressからの記事移行にはwordpress-to-hugo-exporterプラグインを使っている。 管理画面から実行することもできるが記事が多いとタイムアウトするのでssh経由で利用。 それでもタイムアウトするのでphpファイルの中身を眺めて変更を加える。

基本は全ての記事、ページ、画像を変換してくれるが、画像が多すぎて失敗していると思われる。

convert_uploadsファンクションで画像ファイルなどを持ってきている様子。 実行しているところをいったんコメントアウトする。 画像ファイルについてはFTP経由でダウンロードすることにする。

// $this->convert_uploads();

記事が多くても失敗するようなので投稿日などで絞り込みして徐々に取得。 記事の絞り込みはget_postsファンクションでやっているのでSQLを変更する。 「AND YEAR(post_date) = 2025」を追記して2025年の記事だけ抽出。

SELECT ID FROM $wpdb->posts WHERE post_status in ('future', 'publish', 'draft', 'private') AND post_type IN ('post', 'page' ) AND YEAR(post_date) = 2025

カスタム投稿を利用していると取得されないので「post_type IN (‘post’, ‘page’ )」に追記が必要。

プラグインをSSHから実行する。第一引数は一時ファイルを使う場所の指定、無くても動作するらしいが私の環境では失敗するので付ける。 実行したディレクトリにzipファイルができるのでFTP経由でダウンロード。

$ php hugo-export-cli.php ./

zipファイルを解凍したけど完成したmdファイルの名称とタイトルが合ってない。 phpファイルをいじったせいだと思うが、phpに詳しくないので別の方法でファイル名は修正する予定。