WordPress

管理項目を追加する

これまで作ってきたプラグインは、項目が「sample_name」という1つの項目だけを取り扱ってきました。

今後は、sample_nameという項目以外にも、チェックボックス、ラジオボタン、セレクトボックス、テキストエリア、を取り扱う管理画面を作ってみるので、プラグインインストール時に実行されるテーブル作製のcreate table文を拡張してみます。

これまでは、以下のcreate文です。

[php]
CREATE TABLE {$table_name} (
id INT NOT NULL AUTO_INCREMENT,
sample_name VARCHAR(128),
create_date DATETIME,
PRIMARY KEY(id)
) {$charset_collate};
[/php]

これを、次のように拡張します。
[php]
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};
[/php]

実行されるタイミングはプラグインをインストールした時に一度実行されるので、メソッド全体では次のようになります。

[php]
/**
* プラグインインストール時
*/
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’)
)
);
}
[/php]

次回以降、この追加した項目に対して、「登録」「修正」「削除」「詳細」ができるように、管理画面を拡張していきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です