WordPress(ワードプレス)でプラグイン有効時にデータベースに独自テーブルを追加
WordPress(ワードプレス)のプラグイン作成時にカスタム投稿を利用せず、独自のテーブルを作成する場合の実装方法をメモ。 PHP function create_tables(){ global $wpdb; $charset_collate = ""; $table_name = $wpdb->prefix . '○○○○'; // charsetを指定する $charset_collate = $wpdb->get_charset_collate(); // SQL文でテーブルを作る $sql = "CREATE TABLE {$table_name} ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, memo text NOT NULL, del_flg int(11) NOT NULL, create_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (id) ) {$charset_collate} AUTO_INCREMENT=1;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta($sql); } // 有効にした時に引数で指定したファンクションを実行 register_activation_hook( __FILE__, 'create_tables' ); 「$table_name」の部分で、新規に追加するテーブル名を、「$sql」の部分に追加したいカラムの情報を記載する。 参考までに、プラグイン停止時、または削除時にアクションを実行したい場合は下記の関数を使用。 PHP // 停止した時に引数で指定したファンクションを実行 register_deactivation_hook(__FILE__, $function); // アンインストールした時に引数で指定したファンクションを実行 register_uninstall_hook(__FILE__, $function); //例:アンインストール時に前述のテーブルを削除する場合 function delete_table(){ global $wpdb; $table_name = $wpdb->prefix . '○○○○'; $sql = 'DROP TABLE '.$table_name; $wpdb->query($sql); } register_uninstall_hook( __FILE__, 'delete_table' ); WordPressのプラグインでデータベースを作成・削除・アップデートする方法プラグインでデータベーステーブルを作る