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_●●)に置き換える事で正常に動いた。
コメントを書く