既にWordPressでブログを構築しており、同じサーバ内にもう一つWordPressを追加したい。
そんなときに、既存のWordPressのユーザー情報やログイン情報を新規にインストールするWordPressと共有する方法です。
新しいWordPressのインストール前の準備
サーバにある既存のWordPress(以下、既存WP)とは別のフォルダをつくり、新しくインストールするWordPress(以下、新WP)をアップロードします。(同じバージョンを推奨)
新WPをインストールする前に以下の作業をします。
既存WPのwp-config.phpを、新WPにコピーして開きます。
新しいwp-config.phpでは、$table_prefix の値のみを変更して、あとは
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
の上あたりに以下のコードを記述
define('CUSTOM_USER_TABLE','wp_users');
define('CUSTOM_USER_META_TABLE','wp_usermeta');
※既存WPのデータベース接頭辞に注意してください! wp_ 以外を設定している場合は適宜上記の[wp_]の部分を書換えてください。
新WordPressのインストール
- 上記が終わったら新WPのURLにアクセスしてインストールを開始します。
- そうすると、いつもはユーザー名とかを入力する画面で、「既にユーザが存在しています」みたいなメッセージが表示されて、メールアドレスだけを入力する画面が表示されます。
- ここで入力するメールアドレスは、既存WPでは使っていないものにしてください。
- 上記でしていしたメールアドレスをつかって管理者ユーザーが自動的につくられます。パスワードが表示されるのでメモしてください。
- あとはいつもの流れでインストール
もちろん新WPの接頭辞は既存WPのとは別にしてくださいね。
新WordPressのインストール後作業
- 上記のインストールの時につくられたユーザーで新WPにログイン
- ダッシュボードのユーザー一覧を見ると既存WPのユーザーが表示されていますが、「権限なし」になっているので、権限を与えましょう。
- 既存のユーザーに管理者権限を付与した後は、新WPが自動的に追加した管理者ユーザーは削除しても構わないと思います。
以上で終了。
ユーザー情報が複数のWordPressで共有されます。
DBをのぞいてみると、新DBのテーブルの userとusermetaは作られていないのが確認出来ると思います。
この情報に至った経緯
WordPressで複数のブログを運用したいときにはマルチサイトという便利な方法がありますが、既に構築&運用後にWordPressをマルチサイト化しようとすると「サブドメイン型」でしかマルチサイト化できません。
今回は、「サブディレクトリ型」でのマルチサイト化がしたかったのですが、諦めてもう一つWordPressをインストールすることにしました。
そこで、考えたのがユーザー情報が共有できないか?ということです。同じユーザーで2つのブログを管理できたらマルチサイトとまでとはいかないけど全くべつのブログを運用するよりは少しは便利になりそうです。
それっぽい情報がCodexにあったのでやってみました。という訳でした。
参照したサイト
WordPress Codex日本語版
(Codexです。ほかにもいろいろマニアックな設定がのっていて参考になりました)
http://justintadlock.com/archives/2008/09/20/installing-two-wordpress-blogs-with-the-same-users
(具体的なやり方がかいてあって参考になりました。ほぼこのままやりました)