絵文字が入れたくてやった。結構ドキドキな瞬間が多かったの備忘録としてまとめます。
これができるようになる↓

大体のWordPressのDBの文字コードはUFT-8
大体のWordPressのDBの文字コードはUFT-8です。
一般にはこれで問題ないんですが、3バイトまでしか読めないみたいで、4バイト文字(絵文字等)がダメなときあります。
つまり絵文字を使いたいサイトとかをやる場合はDBの文字コード変更が必要。
WordPressのDB文字コードをutf8mb4にすると良いらしい
じゃあどうすんの?って話で、utf8mb4っていうのにすると、4バイトもOKになるそうですわ。
へーじゃあ変えていきましょかーってなるわけですが、ここからがちょっとむずいです。
DBの設定って基本的にはwp-configに書いてあるので、そこを変えればOKかと思ったらそれだけでは足りないみたいです。
なぜかというと、すでにテーブルが作られてしまっているため。
このwp-configの設定情報は主に新規でテーブルを作るときの参照項目で、もうあるテーブルは既存の設定を引き継ぐらしいです。
ということはつまり・・?
具体的にやったこと
結論から言うと、以下で行けました。(新規でサイトを作った)
- 新規でWordPressを作る
(この時レンサバの簡単インストールとかだとutf8mb4が選べないので、uft8とかで作る) - phpmyadminでDBに入って、既存のテーブルを全部削除する
(空にするんじゃなくて削除。めっっちゃ怖かったから何度も他サイト入ってないか確認した) - サイトにアクセスするとinstall.phpに飛んで再インストール走るので、そこで設定を入れて完了
- 4バイト文字が行けることを確認
ざっくりだとこの流れです。
ただ実際にはテーブル削除してアクセスしたら「このURLは無効です」とかになって、ファイルをパラパラみてinstall.phpがなくなってたので他サイトからコピって入れて進んだりとか、なんかちょいちょい詰まった項目もありました。
(そのほかではphpmyadminいじりたくなさすぎて、プラグインでできぬ?と聞いて、出来なさそうと分かったり、テーブルを削除しない方向でできぬ?と思って難しそうと分かったりなど色々して、結局王道な方法でいった)
wp-configに入れる設定
define( ‘DB_CHARSET’, ‘utf8mb4’ );
define( ‘DB_COLLATE’, ‘utf8mb4_unicode_ci’ );
install.phpない問題
理由は本当にわからないけどなんかなかった。同じサーバ上のほかサイトはあったので、DB消したときなどに消えたのかもwp-adminの下に置くと普通に作動。GPTからは全ファイル置き直したほうが良いと言われたけど、install.phpだけ置いたらいけた。
テーブル削除後なんか接続できなくなって焦った↓

そんな感じです。慣れたら楽そうだけど、初めてだと怖いなと思いました。
怖すぎるテーブル削除(❌を選んでいけ)↓

終わりに。新規サイトでやったほうが良さそう
本当は既存サイトをそのままDBの文字コードだけ変えたかったけど、なんか難しそうでした。
DBはミスったら死(強いエンジニアはその限りではないがパンピーは死)なので、新規サイトでやってみて、OKなら載せ替えるとかが良さそうと思いました。
まあそこまでして文字コードを変更する必要があるケースが果たしてどれほどあるのか?とかも思うけど、WordPressの知見として知っておいてもいいかも。
というマイナーノウハウでした。終わり。
コメント