WordPressからHugoに移行すべく記事をエクスポートしようとしたらけっこう苦戦した。
Webにすでにいっぱい情報があるけど、覚え書きしておく。
最終的に、WordPressのダッシュボードからGUIでエクスポートすることはできなかった。
hugo-export-cli.phpを使ってエクスポートした。
ツールをインストール
https://github.com/SchumacherFM/wordpress-to-hugo-exporter
↑のリポジトリを、「Clone or download」ボタンでzipで落とす。
それをWordPressのホストにSCPで転送(/var/www/html/wp-content/plugins
)してunzip。
wordpressの管理画面に行ったらプラグインが入ってる。
けど、Toolsからエクスポートを実行できなかった。
php56-devel
を入れる
$ php hugo-export-cli.php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/7.0/modules/zip.so' - /usr/lib64/php/7.0/modules/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
zip.soがないとのこと。
$ ls /usr/lib64/php/7.0/modules/
すると、たしかに無い。
下記ページを参考に、php56-devel
を入れる。
https://qiita.com/nny-fujii/items/4bf0ce067d24dfcaf286
http://absg.hatenablog.com/entry/2017/01/18/171326
$ sudo yum install php56-devel
$ sudo service httpd restart
php56-mysqlnd
を入れる
再度試すと下記エラーが。
$ php hugo-export-cli.php
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
下記ページを参考に、php56-mysqlnd
を入れる。
https://blog.kujira-station.com/201501261644
https://stackoverflow.com/questions/42526831/php56-common-conflicts-with-php-common-5-3-29-1-8-amzn1-x86-64-when-installing-p
$ sudo yum install php56-mysqlnd
$ sudo service httpd restart
$ php -m | grep mysql
mysql
mysqli
mysqlnd
pdo_mysql
エクスポート
この状態でエクスポートすると、成功した。
$ php hugo-export-cli.php
This is your file!
/tmp/wp-hugo.zip
ファイル名は、yyyy-mm-dd-記事タイトル.md
の形式になる。
ファイル名に日本語が入っているととり回しが面倒なので、日本語を削っておく。
コマンド一発で処理しようと思ったんだけども、いい方法が浮かばなかったので、手作業でちまちま修正した。
hugoのposts配下にファイルを置いて、移行完了。