以前の投稿でWordPressの静的ファイル生成するときにSimply Staticというプラグインを使うと紹介しました。
その際にちょこちょこつまづいた箇所があったので備忘録としてまとめることにしました。
Simply Static
WordPressのプラグインです。WordPressの全てのページの静的ファイル(HTMLファイル)を作成してくれます。
どのサイトを調べても、使い方は簡単とか書いておりますが、僕はそんなに簡単にはいきませんでした。。。ということでSimply Staticを使う上でつまづいた箇所について解決方法と共にまとめていきます。
HTMLファイルが生成されない
問題
静的ファイルを生成するボタンをクリックしてもファイルが全く生成されません。
解決
どうやら、PHPのバージョンが新しすぎてSimply Staticが動かなかったようです。
PHPとはWordPressを動かしているプログラミング言語です。僕はローカル環境のWordPressはMAMPで動かしています。
MAMPのPHPバージョンを7.4.2から7.0.33に下げることで解決しました。
プラグインは便利ですが、新しいプログラミング言語のバージョンに未対応というのはよくある話です。
ファイル名がエンコードされる
Simply StaticではHTMLファイルが生成されるのですが、そのファイル名がエンコードして出力されてしまいます。
問題
僕はファイル名には記事のタイトルを使っています。当然、日本語の記事なのでタイトルは日本語です。しかし、日本語はコンピュータの世界ではマルチバイト文字と呼ばれ、なかなか扱いにくいものなのです。そこで、Simply Staticでは扱いやすいように日本語をエンコードします。
ここで問題なのが、ページ内にあるaタグなどのリンクは日本語で書いてあるのに、ファイル名はエンコードされているということです。
例えば「[池袋のグルメを満喫しよう] 無敵家で「無敵家らーめん ニクタマ」(大盛り)を食べてきました」は次のようにエンコードされます。
%e6%b1%a0%e8%a2%8b%e3%81%ae%e3%82%b0%e3%83%ab%e3%83%a1%e3%82%92%e6%ba%80%e5%96%ab%e3%81%97%e3%82%88%e3%81%86-%e7%84%a1%e6%95%b5%e5%ae%b6%e3%81%a7%e3%80%8c%e7%84%a1%e6%95%b5%e5%ae%b6%e3%82%89
人間には読めませんね。
これではリンクをクリックしてもファイルが見つかりませんということになり、記事ページに遷移することができません。
解決方法
どうにかしてファイル名を日本語に戻す必要があります。
しかしページ数も多く、手で直すのは大変です。しかも、生成するたびに手動で直すのは現実的ではありません。
下記の記事を参考にスクリプトを作成しファイルの日本語化に成功しました。
これでリンク切れがなくなりました。大変助かりました。
最後までお読みいただきありがとうございました。