WordPressの文字コードをutf8からutf8mb4に変換した。
2022年01月26日 12時00分 月齢:23.7[真夜中の月] 潮汐:小潮
3年前に投稿 | WordPress | コメントはありません
3分ぐらいで読めます。
UTF-8の4バイト文字なんて、ないならないであまり困るものではないんですけど、技術的に可能であるならせっかくなので表示させたいと思うようになりました。
WordPress4.2以降で4バイト文字はサポートされているようなのですが、秘伝のタレのごとく15年にわたってデータを継ぎ足してきた当サイトはいつまで経ってもアップデートされる気配がありません。
「ないならないで」なんて強がりを言ったものの、なんとなく置いていかれている感がして心細いので、思い切って変換させてみることにしました。
phpMyAdminで1つずつデータベースを変換なんてしていたらかえって失敗しそう。よし、もうダイレクトに先人の知恵にすがりつくぞ。失敗したらまずいからな。
参考にしたサイトはコレ。
よーく読んで、手順が腑に落ちたところで、やってみます。
wp-config.phpの変更
WordPressのテーマエディタではいじれないので、FTP上から直接編集しました。
/** データベーステーブルのキャラクターセット (ほとんどの場合変更する必要はありません。) */
define('DB_CHARSET', 'utf8mb4');
functions.phpに追記
functions.phpの最後の行に、以下の記述を追記しました。あとで消したくないところを消すのはイヤなので、コメントで囲んでおきましょ。
//あとで消す
if( isset($_GET["upgradeUtf8mb4"]) && $_GET["upgradeUtf8mb4"]==1) {
require_once ABSPATH."wp-admin/includes/upgrade.php";if ( is_multisite() ) {
$tables = $wpdb->tables( 'blog' );
} else {
$tables = $wpdb->tables( 'all' );
if ( ! wp_should_upgrade_global_tables() ) {
$global_tables = $wpdb->tables( 'global' );
$tables = array_diff_assoc( $tables, $global_tables );
}
}foreach ( $tables as $table ) {
maybe_convert_table_to_utf8mb4( $table );
}echo "done.";
exit;
}//ここまで消す
これはWordPressのテーマエディタからも編集可能ですね。
DBの変換
以下のhogehogeに自サイトのドメインを入れて、実行すると、ほぼ一瞬で変換が終わります。白い画面に「done.」と表示されますよ。
https://hogehoge/?upgradeUtf8mb4=1
functions.phpの追記を削除
functions.phpの最後の行に追記した部分を削除します。その後変換されているかどうか確認してみました。
おほっ、無事に変換されていますね。
まとめ
いきなり本番っていうのはさすがにこわかったので、手持ちの古いサイト2つを使って実験してから本番を実施しましたが、実験も含めて上記の手順で問題なく変換できました。
辰𠮷𠀋一郎・竈門禰󠄀豆子・𩸽の一夜干し・竈炊き立てごはん𡈽井…
書ける! 書けるゾっ!!
古い記事・新しい記事
- 古い記事 [2021年11月05日]
- ← WordPress 固定ページたちへのリンクのリストにアイキャッチ画像のサムネイルをつけてみた。
- 新しい記事 [2022年03月23日]
- → WordPress 前の投稿・次の投稿へのリンクに日付を加えてみた。