初回のDBテーブル作成 | プラグイン有効化時に実行されるフック
// プラグイン有効化時に実行されるフック
register_activation_hook(__FILE__, 'crudbase_wp_activate');
/**
* プラグイン有効化時の処理
* @note プラグインを再度、無効化にして有効化してもエラーにならず、DBテーブルのデータも消えることはない。
*/
function crudbase_wp_activate() {
global $wpdb;
$table_name = $wpdb->prefix . 'crudbase_wp'; // テーブル名を定義(wp_のプレフィックスを考慮)
$charset_collate = $wpdb->get_charset_collate();
// SQLでテーブルを作成
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
// WordPressのdbDelta関数を利用してテーブルを作成
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}