WordPress内で異なるデータベースのテーブルを利用したい

2020年1月12日

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() { 
        //略
    }

    //略 
    
}

Posted by webmaster