WordPress 4.1.2: 不具合対応まとめ

技術的にどのようい互換性を維持するのか? とかそういう話は置いておいて根本的に今の作りを見直さない限り先が無いと思ったのでそのまとめ。

先ず、そもそもの原因は何だったのか? ですが、結局はこの文章に尽きます。

当時 Ryan がこの問題を理解して適切な修正が本体で行われるまで丸1年かかりました。そしてその時にデータベースを UTF-8 に正常に変換できずにそのまま運用してきた方達、あるいは、同様の変則的な設定でたまたま動かせていた方達が今回のデータベース周りの改変に引っかかってしまった、ということですね。

要は本来UTF-8に全て変換されていなければならなかったMySQLのDBが部分的にShift JISのまま使い続けられてしまった事が原因という事ですね。一応自分でも WordPress 4.2.1-ja を新規でセットアップしてみて確認したのですが、生成されるDBの照合順序が全く別物。このサイトはWordpress 2.3の頃から延々と使い続けていたのですが、DBの照合順序は ujis_japanese_ci 。部分的に utf8_general_ci にテーブルの照合順序が書き換えられているもののエントリが格納される wp_posts は ujis_japanese_ci のままでした。

一方で新規でセットアップしたDBは utf8_general_ci で設定されており個別のテーブルは全て utf8mb4_general_ci で設定されています。なるほどこれなら wp_posts に書き込む時の文字コードが変換されてしまう事にも納得が行きます。従って根本的な解決策はただ一つ。DBを再作成して新環境を構築する事です。まあDBを2つ作って移行ツールを作るようなところで頑張っても良いのですが、バグ出し大変そうだし新規DBにExport/Import でデータ移行ですよ。その辺りの手順を簡単にまとめておきます。
続きを読む WordPress 4.1.2: 不具合対応まとめ