相当久しぶりに記事を投稿しようと思い、このサイトの管理画面にログインした。
投稿する前に、wordpress本体や、多くのプラグインのアップデートをする。wordpressのバージョンは、4.2.2–jaに。
最新のアップデートは、様子をみつつ、バグ報告がないことを確認してからやっていたが、最近はそれよりセキュリティが心配でさっさとアップデートしていた。面倒だったからというのと、クライアントではなく自分自身が運営しているサイトだったから。
そして、久しぶりに長い記事を書いたら、「公開」ボタンのところがなにかいつもと違う。「レビュー待ちとして送信」となっていたのだ。 最新バージョンになって仕様が変わったのかな。でも、「下書きとして保存」ボタンは今まで通りあったので、とりあえずここで保存しておくかとクリック。
すると…
投稿内容が消えてしまった! 下書きとしても保存されていない!
はぁ、本当に久しぶりに記事を書いたのに…
何度試してみても投稿できない。途中まで書いて放り投げてあった以前の下書きをちょっと修正して投稿したら、これまで消えてしまった。なんなんだよ、もう。
今回、なんの確認もせずにアップデートをかけたのは、2つのサイトなのだが、片方は問題なく投稿できて今までとなんらかわらない。なのに、余計なプラグインも入れていない、デーマも付属のものを利用しているこのサイトでバグが発生した。
他に同様の現象が報告されていないか検索してみた。
その結果、どうもwordpressのバージョンアップで、文字コードが複数混在してしまったようで、現時点ではまだバグフィックスされたアップデートはでていないようだ。
いくつか見つけた質問掲示板でも、明らかな解決法はのっていない途中経過だけだった。
もう面倒だから、バグフィックスが出るまでこのまま放置かな。
今回の問題は、どうもデータベース内で文字コードが変わってしまったことが原因のようだ。文字コードを直すのはそんなに難しい方法ではないし、ダメだったとしても戻すのが簡単そうだったので試すことにした。ネットで探し出した方法は、php.iniとか、.htaccessとか、前のバージョンに戻すとか、なんか面倒だったのだ。明確に解決した、となっているものでもなかったし。
- 【手順】
- phpMyAdminにログインする。
- テーブルの「照合順序」が「utf8_general_ci」「ujis_japanese_ci」と混ざっているので、全て「utf8_general_ci」にする。「操作」の左から2番目のアイコン「構造」で変更できる。
- これだけだと、テーブル自体の照合順序が直っただけ。次に、テーブルの中身の照合順序を直す。左メニューでずらっと並んでいる各テーブルを一つ一つクリックし、フィールドを全てチェックして、「変更(鉛筆アイコン)」をクリック。
- そこも、「照合順序」が「utf8_general_ci」「ujis_japanese_ci」と混ざっているので、全て「utf8_general_ci」にする。面倒だけど、各テーブル全部やる。
これで、とりあえず投稿時のバグは直ったようだ。当分、新規記事は消えてしまってもいいように、外部テキストに保存してから投稿すると思うが。