WordPressをひとつのデータベースに複数インストール

Tips

ひとつのデータベースに複数のWordPressをインストールしたいという質問を受けることがあります。
方法は簡単で、インストールの際に「テーブルの接頭辞」を変えればよいのです。それだけです。
少なくとも学習上の使用ならこれで十分かもしれません。けれども初心者は混乱のもとになりますので、まずは新しいデータベース名を作成して練習した方が良いかもしれません。

スポンサーリンク

テーブル接頭辞とは?

そもそも「テーブル接頭辞」とは何なのでしょうか。授業のときのインストールでは「ここはそのままで進めてください」と言って終わるところです。
詳解 WordPressの中で$wpdbオブジェクトを使ってテーブル一覧を表示する内容があります。
これは簡単なPHPを記述して現在のWordPressが参照しているデータベースのテーブルを表示させるものです。
テストサイトのテーブルを表示させたものが次の図です。
db_table1
上図のようなテーブルが作成されているわけですが、ここで注目したいのはすべてのテーブルに「wp_」というプリフィックスが付けられています。この「wp_」というプリフックスが実はインストールの際に設定した「テーブル接頭辞」です。
db_table2

ここで、新たなWordPressを同じデータベース名にインストールするとしたら、この「テーブル接頭辞」を変えます。例えば「w2_」などとします。
db_table3

これでデータベースは同じで、テーブルの形式も同じですが、まったく別のテーブルを作ることができます。
再び$wpdbオブジェクトを使ってテーブル一覧を表示すると次のようになります。これで納得がいくと思います。
db_table4

ちなみに、$wpdbオブジェクトを使ってテーブル一覧を表示するphpは以下のとおりです。WordPressインストールしたフォルダの直下に置きhttp://localhost/wp/show_tables.phpなどとアドレス指定して呼び出します。

ただテーブルを確認するだけなら、phpMyAdminでテーブルの構成を見ればわかることですが。。。

$wpdbオブジェクトを使ったテーブル一覧表示show_tables.phpの内容

<?php
require_once( 'wp-load.php' );
$mytable = $wpdb->get_results( 'SHOW TABLES', ARRAY_N );
foreach ( $mytable as $row ) {
  echo $row[0] . "<br>";
}

詳解 WordPressではデータベースとWordPressの主要概念について詳細に記述されています。

タイトルとURLをコピーしました