WordPressをインストールする際にMySQLに作成されるテーブルのほかに、自作プラグインでもテーブルを作成することができる。アクションフックのregister_activation_hookを定義しておくとプラグインが有効になった際に関数が呼ばれるので、ここでテーブルを作成する。テーブル名にはWordPressの接頭辞を使用すること。
以下は、wp_sampleというテーブルを作成する例。
[sourcecode language=’php’]
function myActivation() {
global $wpdb;
$table_name = $wpdb->prefix . “sample”;
if($wpdb->get_var(“show tables like ‘$table_name'”) != $table_name) {
$sql = “create table ” .$table_name .” (
ID bigint not null auto_increment,
name
varchar(64) NOT NULL,
furigana
varchar(64) default NULL,
url
varchar(64) default NULL,
primary key(ID)
)”;
$results = $wpdb->query($sql);
}
}
register_activation_hook(__FILE__, ‘myActivation’);
[/sourcecode]
プラグインが無効化された際の処理は以下を使用する。
[sourcecode language=’php’]
register_deactivation_hook(__FILE__, ‘myDeactivation_’);
[/sourcecode]