wordpressで自作DBにアクセスする方法

wordpressで自作DBにアクセスする方法

wordpressで自作のテーブルを作る

テーブルの作成

phpMyadminからテーブルを作成する。
wordpressインストール時に自動生成されるWP_から始まるDBにテーブルを追加する形になる。このDBには既にテーブルが作られているので削除しないように気をつけよう。
作成時はテーブル名にプレフィックス「wp_」を含めて命名する必要がある。wordpressがシステム的見たときに分かるようにするためである。

wp-db.phpの編集

WordPressでは「$wpdb」というグローバル変数(オブジェクト)を通してDBの各テーブルにアクセスすることができる。この$wpdbに自作テーブルを認識させるため、以下の手順でwp-db.phpファイルを編集する必要がある。

wp-includesディレクトリ配下にある「wp-db.php」ファイルを開く。

	/**
	 * List of WordPress per-blog tables.
	 *
	 * @since 2.5.0
	 * @see wpdb::tables()
	 * @var array
	 */
	public $tables = array(


ファイルの中から上記のを見つけ、この配列の中に作成したテーブル名を記入する。0~9までの配列は、WPが自動生成した物のため削除は厳禁。
ここに記載する際には、プレフィックス「wp_」は不要である。

自作のPHPファイルを呼び出して使う

functions.phpの編集

自作のPHPファイルを動かすためにはfunction.phpファイルひと手間加える必要がある。
functions.phpの場所は「WordPressをインストールした場所」→「wp-content」→「themes」→「有効化中のテーマ」の中にある。
この中に下記のコードを追記しよう。

/* PHPの読み込み
---------------------------------------------------------- */
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(STYLESHEETPATH . "/$file.php");
return ob_get_clean();
}
add_shortcode('call_php', 'my_php_Include');

上記の”call_php”を記載することでwordpressの記事作成ページから自作したPHPファイルを呼び出せる。
上記のコードは、functions.phpと階層にあるPHPデータを呼び出せれる。階層を別にしたい場合は「”/$file.php”」を編集すればOK。

サンプル.phpの作成

functions.phpと同じ階層に「sample.php」を作成する。
中身は何でもいい。

サンプル.phpの呼び出し

投稿画面で[call_php file=’●●●●●’]と入力することで自作PHPを呼び出せる。この記載をショートコードと呼ぶ。●●●●の中はファイル名を記入する。
上記でsample.phpを作成したので、call_php file=’sample‘と入力しよう。

この時、wordpressのブロックオブジェクトからショートコードを選んで入力してもいいが、僕の環境では動かなったのでショートコードをベタ打ちした。

呼び出すことで、呼び出し元のファイルの中身が出力される。

自作のテーブルの中身を呼び出す

ここまで出来たら本題の自作テーブルの中身にアクセスする事が出来る。
呼び出し元のファイルにPHPを記載する。

  global $wpdb;
//DBにアクセスするおまじない
 
  // SQL
  $sql = $wpdb->prepare("SELECT p.name, p.price FROM $wpdb->●●");

 
 rows = $wpdb->get_results($sql);

上記が、一番シンプルに取得するコード。


global $wpdb;がDBにアクセスする為に必要なおまじない。
$wpdb->●●でテーブルを指定する事が出来る。上記の項目でwp-db.phpにテーブル名を追加していないとエラーになる。
ここでも、$wpdb->●●が僕の環境では動かなかった。代わりに本来のテーブル名(wp_●●)に置き換える事で正常に動いた。

Databaseカテゴリの最新記事