WordPressを使っていて、ログイン時のユーザー名を変更したいと思ったことはありませんか?
ご存知のとおり、WordPressにはユーザー名の変更機能が用意されておらず、ユーザー名を変更するにはユーザーの再作成などが必要でした。
しかし、何らかの理由があって、どうしてもユーザー名を変更したいケースがあります。
今回は、データベース上で直接ユーザー名を変更する方法を解説します。
バックアップを取得する
任意の方法でデータベースのバックアップを取得します。mysqldumpなどを使う方法もありますが、Updraft PlusなどのWordPressのプラグインを使う方法が簡単です。
Linux上で行う場合は、以下のコマンドを実行します。
$ mysqldump -u [ユーザー名] -p [データベース名] > [出力先ファイル名]
データベースに接続する
まず、データベースに接続します。外部からの接続が許可されている場合は、任意のツールを使ってログインしてください。あるいは、phpMyAdminのようなツールでも構いません。
Linuxからは、以下のようにコマンドベースでログインする事が出来ます。
$ mysql -u ユーザー名 -p
WordPressのデータベース構造によれば、wp_usersテーブルのuser_loginがユーザー名になっているようです。他のテーブルからは利用されていないようですので、これを変更するだけでユーザー名が変更できます。実際にやってみましょう。
まず、ユーザー名を書き換える対象のデータベースを選択します。
USE [DB名];
続いて、UPDATE文を発行します。
UPDATE wp_users SET user_login = "[新しいログイン名]" WHERE user_login = "[現在のログイン名]";
これで、ユーザー名の変更が完了しました。
確認する
実際に、Adminページにログインし、正常にログインできること、投稿の編集などができることを確認してみましょう。
もしかすると、プラグイン関連で不具合が起きるかもしれませんので、しっかり動作を確認してください。
まとめ
今回は、荒技ながらデータベースを直接弄る方法でユーザー名を変更することを解説しました。データベースの構造を知っておくことは、今後のカスタマイズにも役立ちますので、この機会にぜひ慣れておくことをお勧めします。