確認した事象

  • ちょっと古くから使っているWordPressのサイトにおいて、WordPress4.1.1から4.1.2以降へアップデートすると、新規投稿できない/既存記事を更新すると文字化けする。

原因っぽいこと

  • DBがujisのまま
  • DBはutf8だが、一部テーブルのCHARSETがujisのまま(textboxはこのケース)

確認しておくこと

  • DBのダンプデータをエディタ等で開き、「CHARSET=ujis」を検索する。問題が発生している場合、たぶん見つかる。
    (textboxの場合、25テーブル中10あった)

対処方法

  • 暫定措置

    下記フォーラムを参照。
    https://ja.forums.wordpress.org/topic/150103#post-208912
    WordPress4.2.1では2593行目を修正。
    https://core.trac.wordpress.org/browser/tags/4.2.1/src/wp-includes/wp-db.php#L2593

  • ここでやってみた対処方法

    フォーラムにはCHARSETを変換するのが良さそうとあったので、この際だからきちんとやってみる。

    • 作業前提
      • DBは charset utf8 にしてあった
    • やったこと
      • mysqldumpするかphpmyadminでエクスポート
      • 書き出したデータを開いて、CHARSET=ujis を CHARSET=utf8 に置換
      • utf8なDBを新たに作ってインポート
      • wp-config.php のDB設定を変更して再ログイン
      • 新規投稿できるか確認する

うまいこと投稿できるようになりました。ありがとうございました。