WordPress から Hugo への移行(1)サンプルページの表示まで

現在運用中のサイトの一つで、ドメインを移行作業をしている。

これに伴い公開サイトの Docker 化をしたりしているが、WordPress に関してもこれを機に Hugo に移行することにした。WordPress はアップデートが多くてマネージメントが手間だし、セキュリティー上の不安もある。Hugo ならもっと管理がしやすいらしい。

今回移行する WordPress は記事数が 2000 を超えている。Hugo への移行では手作業がどうしても発生してしまうので、できるだけ自動化したり移行しやすいよう頭を使う必要がある。

一旦 Mac の Hugo で元のブログを再現し、公開方法についてはまた考えることにする。

移行元:
・スターサーバー
・WordPress 6.2

作業環境:
・macOS Ventura 13.5(英語環境)

(1)準備としてあれこれ WordPress をいじるので、念のためバックアップをしておく。

僕は BackWPup と All-in-One WP Migration を使用した。万が一に備えて2種類のバックアップをしている。

BackWPup – WordPress Backup Plugin – WordPress plugin | WordPress.org
https://wordpress.org/plugins/backwpup/

All-in-One WP Migration – WordPress plugin | WordPress.org
https://wordpress.org/plugins/all-in-one-wp-migration/

(2)Hugo への変換においてよけいなショートコードなどがあると手直しが発生するので、WordPress からなるべく不要なプラグインを削除しておく。

(3)WordPress からのデータの書き出しについては Hugo の公式サイトに書かれている。

Migrate to Hugo | Hugo
https://gohugo.io/tools/migrations/#wordpress

Jekyll Exporter は WordPress にプラグインをインストールできるが、なぜか動かなかった。

Jekyll Exporter – WordPress plugin | WordPress.org
https://wordpress.org/plugins/jekyll-exporter/

wordpress-to-hugo-exporter は WordPress にプラグインを手動でインストールする必要があったがうまく書き出せた。WordPress の管理画面で「Tools>Export to Hugo」をクリックするとダウンロードが開始する。

GitHub - SchumacherFM/wordpress-to-hugo-exporter: Hugo is static site generator written in golang. Wordpress is a tool for remote access to your server ;-)
https://github.com/SchumacherFM/wordpress-to-hugo-exporter

ダウンロードしたファイルを解凍し、その中の md ファイルの中身(個々の記事のファイル)を見てみると、Front matter は yaml 表記だった。

(4)Hugo のインストールは以下のコマンド。

$ brew install hugo

(5)新規サイトの作成は以下のコマンド。

$ hugo new site {サイト名}

(6)テーマを以下のサイトから選ぶ。

Complete List | Hugo Themes
https://themes.gohugo.io/

僕はいろいろ試した結果 Stack にした。レスポンシブデザインだし、ダークモードとライトモードの切り替えができるし、カテゴリーのアーカイブページ等が最初から用意されている。pagination もある。こういったことが、exampleSite のディレクトリを content にコピーすることで、少しいじるだけでいい感じになる。

Stack | Hugo Themes
https://themes.gohugo.io/themes/hugo-theme-stack/

GitHub - CaiJimmy/hugo-theme-stack: Card-style Hugo theme designed for bloggers
https://github.com/CaiJimmy/hugo-theme-stack

Stack | Card-style Hugo theme designed for bloggers
https://stack.jimmycai.com/

テーマのサイトに説明が書いてあるが、cd コマンドで5で作成したサイトのディレクトリに行き、以下のコマンドを実行することで themes ディレクトリにテーマのファイルが入る。

$ git clone https://github.com/CaiJimmy/hugo-theme-stack.git themes/Stack

hugo.toml ファイルに以下を追記することで、Stack をテーマに設定できる。

theme = 'Stack'

(7)3の WordPress からの書き出しファイルのうち、posts にある適当な md ファイルを、Hugo サイトの content ディレクトリに入れる。

(8)以下のコマンドで Hugo のサイトを立ち上げる。

$ hugo server

http://localhost:1313/ にアクセスすればサイトが表示されるはずだ。

7の md ファイルに書かれた URL を見て、http://localhost:1313/{7の URL } にアクセスすれば、そのページが表示されるはずだ。

ctrl + c でサーバーを止める。

静的 HTML ファイルの出力は以下のコマンド。public ディレクトリに出力される。

$ hugo

参考:
Front matter | Hugo
https://gohugo.io/content-management/front-matter/

MacにHugoを入れて、ローカルでサンプルサイトを立ち上げるまで - テストウフ
https://yoshikiito.net/blog/archives/1976/

メモ置き場を Hugo に移行した – 荒木武蔵のメモ置き場
https://musashi.araki.jp/2018/07/10/the-blog-has-migrated-to-hugo/


この記事が気に入ったらサポートをしてみませんか?