今回は、Wordpressで自作のデータベースを読み込むようにしている時、
ある日突然、動かなくなったことがありませんか?
そんな時の確認方法と修正方法について紹介していきます。
Wordpressで自作のデータベースを読み込むようにする場合には、
Wordpressの独自関数「$wpdb」に、自作のデータベースを事前に登録する必要があります。
この登録方法は、「wp-includes」フォルダ内にある「wp-db.php」ファイルの中身を下記のとおり書き換える必要があります。
例)自作のデータベーステーブル「wp_mytable」を利用するとき
public $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta', 'terms', 'term_taxonomy', 'term_relationships', 'termmeta', 'commentmeta', 'mytable', );
「$tables」の配列に自分で作成したデータベーステーブル「mytable」を追加します。
※接頭辞「wp_」は省略します。
これで、自作の「wp_mytable」を「$wpdb」を使用して呼び出すことができるようになります。
★★しかしながら、上記の方法では WordPress がバージョンアップなどで更新したときに、「wp-includes」フォルダ内にある「wp-db.php」ファイルも勝手に更新されます。
これによって、上記で追記した「mytable」が削除されてしまい、利用できなくなってしまいます。
これを防ぐために、「wp-content」フォルダ内に「db.php」ファイルを新しく作成してその中で「$tables」をリライドさせます。
<?php require_once(ABSPATH.WPINC.'/wp-db.php'); class my_wpdb extends wpdb { public $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta', 'terms', 'term_taxonomy', 'term_relationships', 'termmeta', 'commentmeta', 'mytable', ); }; if( !isset($wpdb) ) { $wpdb = new my_wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST ); }
これで、wordpressが自動で更新されても、$wpdbは書き換えられないので安心です。