WordPressのタグでひらがなとカタカナ、濁点半濁点が同一視されてしまう問題

うちのサイトではWordpressで大量のタグをつけているのですが、おかしい動きがありました。
ひらがなとカタカナ、濁点半濁点(ない場合も)が同一視され、意図したタグがつけられないというものです。

調べてみるとMySQLの照合順序の問題でした。
結論からいうと、DBのカラムまでutf8mb4_general_ci(もしくはutf8_general_ci)にしてしまえばOKでした。

これはphpMyAdminから設定しました。データベースのトップを選択した状態で、操作を選択します。

下の方の照合順序でutf8mb4_general_ci(DBの文字コードがutf8の場合はutf8_general_ci)を選択し、「すべてのテーブルの照合順序を変更」と「すべてのテーブルのカラム照合順序を変更する」をチェックして右下の実行を押します。

これで問題なく、ひらがなとカタカナ、濁点半濁点が別に扱われるようになりました。
phpMyAdminでなければALTER TABLEでできるようです。

無意識にインストールした際にutf8mb4_unicode_ciになってしまっていて、こちらがひらがなとカタカナ、濁点半濁点が同一視する設定のようです。

さて、Wordpressとしてはどうするのが正解か・・・までは分かりませんでしたが、一応、DBがこの設定になるやり方だけは再現できました。MySQL自体の設定がちゃんとできていればもしかしたら不要な手順かもしれませんが・・・。

普通にWordpressのインストールを始めます。
DBの情報を入力した後で以下の画面

に遷移したら、ここでwp-config.phpを編集します。

define('DB_COLLATE’, 'utf8mb4_general_ci’);

DB_COLLATEの設定値が空欄のところをutf8mb4_general_ciにしてインストールを進めます。
これでカラムまでutf8mb4_general_ciが設定されました。

以上です。
もっと正しい方法がありましたら、お知らせいただけると幸いです。

MySQL,Wordpress

Posted by kisara