これまで作ってきたプラグインは、項目が「sample_name」という1つの項目だけを取り扱ってきました。
今後は、sample_nameという項目以外にも、チェックボックス、ラジオボタン、セレクトボックス、テキストエリア、を取り扱う管理画面を作ってみるので、プラグインインストール時に実行されるテーブル作製のcreate table文を拡張してみます。
これまでは、以下のcreate文です。
CREATE TABLE {$table_name} ( id INT NOT NULL AUTO_INCREMENT, sample_name VARCHAR(128), create_date DATETIME, PRIMARY KEY(id) ) {$charset_collate};
これを、次のように拡張します。
CREATE TABLE {$table_name} ( id INT NOT NULL AUTO_INCREMENT, sample_name VARCHAR(128), sample_text VARCHAR(256), sample_check VARCHAR(256), sample_radio VARCHAR(256), sample_select VARCHAR(256), sample_textarea text, create_date DATETIME, PRIMARY KEY(id) ) {$charset_collate};
実行されるタイミングはプラグインをインストールした時に一度実行されるので、メソッド全体では次のようになります。
/** * プラグインインストール時 */ function create_tables_sample_mst() { global $wpdb; $charset_collate = ""; //接頭辞の追加(socal_count_cache) $table_name = $wpdb->prefix . 'sample_mst'; //charsetを指定する if (!empty($wpdb->charset)) { $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} "; } //照合順序を指定する(ある場合、通常デフォルトのutf8_general_ci) if (!empty($wpdb->collate)) { $charset_collate .= "COLLATE {$wpdb->collate}"; } $sql = <<< EOL CREATE TABLE {$table_name} ( id INT NOT NULL AUTO_INCREMENT, sample_name VARCHAR(128), sample_text VARCHAR(256), sample_check VARCHAR(256), sample_radio VARCHAR(256), sample_select VARCHAR(256), sample_textarea text, create_date DATETIME, PRIMARY KEY(id) ) {$charset_collate}; EOL; //dbDeltaを実行する為に必要 require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); $sample_name = 'テストデータ'; $table_name = $wpdb->prefix . 'sample_mst'; $wpdb->insert( $table_name, array( 'sample_name' => $sample_name, 'create_date' => current_time('mysql') ) ); }
次回以降、この追加した項目に対して、「登録」「修正」「削除」「詳細」ができるように、管理画面を拡張していきます。