MENU

WordPressのDBの文字コードを変えて4バイト文字を可にする方法。絵文字など

絵文字が入れたくてやった。結構ドキドキな瞬間が多かったの備忘録としてまとめます。

これができるようになる↓

目次

大体の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の知見として知っておいてもいいかも。

というマイナーノウハウでした。終わり。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次