2026年5月26日
2026年5月26日
WordPressのデータベース文字化けを解決する方法
はじめに
WordPressサイトで日本語の記事やコメントが文字化けして表示される場合、データベース内の文字エンコーディング設定が問題であることが多い。この記事では、そのような状況を改善するための手順と方法について詳しく説明します。
症状・背景
- サイト上の日本語コンテンツ(投稿、コメントなど)が乱字や不適切な文字で表示される
- 新規作成した記事やコメントが正常に表示されない
- バックアップから復元後にサイト全体または一部のコンテンツが文字化けしている
- WordPressを異なる環境に移動(サーバー変更、ローカル開発環境へのインストールなど)後に発生
手順・設定方法
ステップ1: データベースエンコーディングの確認と修正
# phpMyAdminまたはMySQLクライアントからデータベースを選択し、以下を実行
SHOW CREATE DATABASE wordpress;
# 結果がutf8mb4に設定されていることを確認。もし違っていた場合、以下のSQLで変更可能
ALTER DATABASE wordpress CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ステップ2: 表のエンコーディングとCOLLATIONの修正
# 各テーブルの詳細情報を確認し、文字コードがutf8mb4であることを確認
SHOW TABLE STATUS FROM wordpress WHERE Name LIKE 'wp_%';
# 必要に応じて以下で変更可能(全てのテーブルに対して実行)
mysql> USE wordpress;
mysql> ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 代表的なテーブルのみを対象とする場合
ALTER TABLE wp_options CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ステップ3: テーブルの特定カラムのエンコーディング変更
# 特定テーブル内のカラムを確認し、必要に応じて以下のSQLで修正可能
mysql> ALTER TABLE wp_options CHANGE option_value option_value LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ステップ4: WordPress設定ファイルの編集
# wp-config.phpを編集し、次の行を追加または確認
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
注意事項
- テーブルやカラムのエンコーディング変更はデータが失われる可能性があるため慎重に実施すること。
- 変更後、サイト全体をチェックし、問題がないことを確認すること。
- サードパーティ製プラグインを使用している場合、そのプラグインも互換性のある文字コードに対応しているか確認すること。
まとめ
1. エンコーディングの確認: データベースとテーブルのエンコーディングが適切であることを確認する。
2. 必要に応じて修正: utf8mb4を適用し、文字化けが解消されるように調整する。
3. wp-config.phpの設定: サイトの基本的な文字コード設定を確認または更新する。
4. プラグインとの互換性: 必要な場合、サードパーティ製プラグインも適切なエンコーディングに対応していることを確認する。
関連記事: