WordPress で $table_prefix(テーブル名)を変えた時の注意点

またまたメモ。データベースを移行する際にテーブル名も変えたかったので $table_prefix を変更してテーブル名も変更。普通に表示できたので「こりゃ問題ないな」と思ったが管理画面にログインしようとすると

あなたはこのページにアクセスする権限を持っていません。

あれれ。私は管理者ですよ。諸々検索してみてこのページに行き着いた。
http://www.wordpress-guide.com/2006/11/11/capabilities/

うーん。文字コードは変更していないので関係ないかなと思いパッチを覗いてみたらこんな項目を発見。

$my_cap_roles = $table_prefix . 'user_roles';

ありゃ。これはテーブルの中に $table_prefix を記述している項目があるのか…。そんな訳でざっと検索してみると。

  • wp_options テーブル → option_name の「wp_user_roles」
  • wp_usermeta テーブル → meta_key の「wp_capabilities」「wp_user_level」

この3つの項目の「wp_」が $table_prefix になっているので変えたいモノに変更。これですっきり。