SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

WordPressのテーブル名を変更する(プレフィックスの変更)

問題

WordPressのデータベースやテーブルを整理していて、テーブル名を変更したのですが、するとログインはできるものの、管理画面にアクセスできなくなりました。

テーブル名を変更したので、wp-config.php のプレフィックス設定も変更しています。

いったいどうなってるの?

WordPress

答え

「wp_」などのテーブル名のプレフィックスを変更して、テーブル名を変更したい場合もあると思います。

テーブル名の変更と、wp-config.php の $table_prefix の変更だけでは、ログインできはしますが、権限が正しく読み込まれません。「このページにアクセスするための十分なアクセス権がありません。」のエラーになったりします。

以下をおこなう必要があります。

(1)wp-config.php の $table_prefix = 'wp_';を変更する(例:$table_prefix = 'wp123_';

(2)テーブル名の変更(例:wp_ → wp123_)

SQLでは以下のように。

ALTER TABLE ~ RENAME TO ~;

(3)wp_optionsとwp_usermeta内の3つのレコードを編集する。

以下のようなSQLを実行する。

UPDATE 変更後のプレフィックスoptions SET option_name = 'wp123_user_roles' WHERE option_name = '変更前のプレフィックスuser_roles';
UPDATE 変更後のプレフィックスusermeta SET meta_key = 'wp123_capabilities' WHERE meta_key = '変更前のプレフィックスcapabilities';
UPDATE 変更後のプレフィックスusermeta SET meta_key = 'wp123_user_level' WHERE meta_key = '変更前のプレフィックスuser_level';

例:

UPDATE wp123_options SET option_name = 'wp123_user_roles' WHERE option_name = 'wp_user_roles';
UPDATE wp123_usermeta SET meta_key = 'wp123_capabilities' WHERE meta_key = 'wp_capabilities';
UPDATE wp123_usermeta SET meta_key = 'wp123_user_level' WHERE meta_key = 'wp_user_level';

関連するメモ

コメント