【WordPress】データベース上でユーザー名を変更する方法

 WordPressを使っていて、ログイン時のユーザー名を変更したいと思ったことはありませんか?

 ご存知のとおり、WordPressにはユーザー名の変更機能が用意されておらず、ユーザー名を変更するにはユーザーの再作成などが必要でした。

 しかし、何らかの理由があって、どうしてもユーザー名を変更したいケースがあります。

 今回は、データベース上で直接ユーザー名を変更する方法を解説します。

この記事は、データベースの更新権限が必要です。

バックアップを取得する

 任意の方法でデータベースのバックアップを取得します。mysqldumpなどを使う方法もありますが、Updraft PlusなどのWordPressのプラグインを使う方法が簡単です。

 Linux上で行う場合は、以下のコマンドを実行します。

$ mysqldump -u [ユーザー名] -p [データベース名] > [出力先ファイル名]

データベースに接続する

 まず、データベースに接続します。外部からの接続が許可されている場合は、任意のツールを使ってログインしてください。あるいは、phpMyAdminのようなツールでも構いません。

 Linuxからは、以下のようにコマンドベースでログインする事が出来ます。

$ mysql -u ユーザー名 -p

 WordPressのデータベース構造によれば、wp_usersテーブルのuser_loginがユーザー名になっているようです。他のテーブルからは利用されていないようですので、これを変更するだけでユーザー名が変更できます。実際にやってみましょう。

 まず、ユーザー名を書き換える対象のデータベースを選択します。

USE [DB名];

 続いて、UPDATE文を発行します。

危険な作業になりますので、構文をしっかり確認してください。特に、WHERE句の内容を間違えると、ロールバックが困難ですので、必ずバックアップを取った上で実行してください。
UPDATE wp_users SET user_login = "[新しいログイン名]" WHERE user_login = "[現在のログイン名]";

 これで、ユーザー名の変更が完了しました。

確認する

 実際に、Adminページにログインし、正常にログインできること、投稿の編集などができることを確認してみましょう。

 もしかすると、プラグイン関連で不具合が起きるかもしれませんので、しっかり動作を確認してください。

まとめ

 今回は、荒技ながらデータベースを直接弄る方法でユーザー名を変更することを解説しました。データベースの構造を知っておくことは、今後のカスタマイズにも役立ちますので、この機会にぜひ慣れておくことをお勧めします。