WordPressで独自テーブルを作る場合

2010年4月30日

WordPressでプラグインを開発していると、どうしてもユーザデータを保存する必要に迫られる事が多い。

たいしたデータでなければwp_options(wp_はprefixなので適宜読み替えが必要)を利用すればいいが、

もう少し大がかりの場合は、テーブルを作ってしまった方が早い。

以下はプラグイン上からのテーブルの作成方法。
add_action('activate_forwebya/forwebya.php’, 'activate_forwebya’);
add_action('deactivate_forwebya/forwebya.php’,’deactivate_forwebya’);

//プラグインインストール時
//専用のテーブルを作成する
function activate_forwebya()
{
global $wpdb;
$sql = “
CREATE TABLE “.SAKUIN_TABLE." (
id int unsigned NOT NULL auto_increment,
parent_id   int unsigned,
value   text,
sort int unsigned default 0,
PRIMARY KEY (id)
);";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php’);
dbDelta($sql);

}

//プラグインアンインストール時
//専用のテーブルを削除する
function deactivate_forwebya_sakuin()
{
global $wpdb;
$sql = “DROP TABLE “.SAKUIN_TABLE;
$wpdb->query($sql);
}

テーブル作成時はdbDelta関数を利用している点に留意。