どこに投稿すればいいのかわからないので、とりあえず、ここに投げます。
状況をある程度再現することができました。古い MySQL は用意できなかったので、試したバージョンは 5.6.21 です。
1. WordPress 4.1.1 の場合
文字コードを ujis、collation は ujis_japanese_ci でデータベースを作り、wp-config.php の DB_CHARSET は、
define('DB_CHARSET', 'ujis');
としてインストールします (ここで、utf8 にすると、WordPress が CHARSET を変えてしまうので、再現できません)。これで全てのテーブルが、文字コードは ujis、collation は ujis_japanese_ci として作成されます。インストール自体は完全ではなくて、入力データの日本語文字列が全て削除された状態で保存されていますが、動作はします。
この状態では、クライアントからサーバに ujis を使ってアクセスしようとするので、WordPress から日本語をデータベースに送れません。そこで、あらためて、
define('DB_CHARSET', 'utf8');
としてログインしなおすと、日本語を保存することができるようになります。4.1.1 で正常に見えたサイトは、この状態になっている可能性が高いです。問題なく運用ができます。
ここから、4.1.2 または、4.2 へアップグレードすると、下の状態になります。
2. WordPress 4.1.1 から 4.1.2 または 4.2 へのアップグレードした場合
すでに保存されているデータは正常に表示できますが、新規作成の画面は「エディタが表示されない」やボタンが「レビュー待ちとして送信」などの状態になります。実質、新規投稿ができません。
また、既存の投稿を更新すると、日本語文字列はすべて ???? となり、そのままの状態でデータベースに保存されます。これは不可逆な変更なので、破壊されたデータを復旧する手段がなくなります。
ユーザのデータが破壊されるという、ちょっとまずい不具合なので、データベースの文字コードが ujis の場合 (つまり EUC-JP です)、あるいは、ujis のテーブルを含む場合で、4.2 にアップグレードした場合は、下の変更が有効かどうか試してもらえますか?
なお、この CHARSET というのは、wp-config.php の DB_CHARSET で指定しているものではありません。データベース、テーブル、カラムの CHARSET を確認してください。
CHARSET=ujis, COLLATE=ujis_japanese_ci
のようなものが見える場合は、該当します。条件を整理すると、
- MySQL サーバ (データベースではありません) のサーバ側文字セットが utf8 である。
- データベースが ujis である。あるいは、ujis のテーブル、カラムを含む。
- wp-config.php で、DB_CHARSET に utf8 を指定している。
今時の MySQL なら、サーバ側文字セットが ujis ということはほとんどないと思いますが、一応確認してください。万が一、ujis なら、wp-config.php の DB_CHARSET は、ujis に設定されているはずです。その場合は、また別のことを考える必要があります。
wp-db.php の変更点。2479行目を下のように変更します。一応前後の行をつけておきます。
foreach ( $data as &$value ) {
$charset = $this->charset; // ここを書き換える
// Column isn't a string, or is latin1, which will will happily store anythin
運がよければ、これで日本語が通るようになるかもしれません。
また、4.2 で、wp-db.php を 4.1.1 のものと差し替えると直ったという報告もありますが、4.2 では、wp-db.php で新設された関数を、別のファイルが使っているので、別のエラーを誘発します。関連のあるファイルは以下の通りです (GNU GLOBAL を使って調べましたが、漏れがあるかもしれません)。
strip_invalid_text_for_column() 関数を使っているファイル
-> wp-admin/includes/post.php
-> wp-includes/comment.php
-> wp-includes/formatting.php
get_col_charset() 関数を使っているファイル
-> wp-includes/post.php
これらを同時に入れ替えれば動作するかもしれませんが、未検証です。不具合の特定が難しくなるので、一部を入れ替えるのはあまりお勧めではありません。