WordPress内で異なるデータベースのテーブルを利用したい
WordPress内で異なるデータベースのテーブルを利用したい場合ですが、意外と簡単に設定できます。
使用例
<?php
//まずは外部データベースに関する情報を定数に保存
define( 'EXTDB_NAME', 'hogehoge_db_name');
define( 'EXTDB_USER', 'hogehoge_user');
define( 'EXTDB_PASSWORD', 'hogehoge_pw');
define( 'EXTDB_HOST', 'mysqlhogehoge.phy.lolipop.lan');
define( 'EXTDB_CHARSET', 'utf8');
define( 'EXTDB_COLLATE', '');
//使用するグローバル変数の宣言
global $ext_wpdb, $table_prefix;
//通常$wpdb変数の物を、外部データベースとしては$ext_wpdbで利用できるようにする。
$ext_wpdb = new wpdb( EXTDB_USER, EXTDB_PASSWORD, EXTDB_NAME, EXTDB_HOST );
$ext_wpdb->set_prefix( $table_prefix );
//後は他のデータベースのデータを使いたいときに$wpdbではなくて$ext_wpdbを使うだけです。
//以下通常のPluginの記述
$hogehoge = new HOGEHOGE();
class HOGEHOGE {
public function __construct() {
//略
}
//略
}