お盆休み前の仕事も無事完了し、自由な時間が多少できたのでゴニョゴニョやってます。
プラグイン有効化時に実行する処理〜オリジナルテーブルを追加しテーブルに行を追加
何とかここまでできました。細かいことは置いといて、今のところはテーブルが追加できればいいんです。
プラグイン有効化時に実行する処理
プラグインのテーブルは、プラグインを有効化した時に作成します。すでにテーブルがある場合はアップデートします。なので、アクティベーションフックに登録する必要があります。アクティベーションフックとは、プラグインを有効化したときにWordPressに処理をひっかけるということです。
//必要なファイルを読み込む require_once dirname(__FILE__).DIRECTORY_SEPARATOR."lib".DIRECTORY_SEPARATOR."client.class.php"; //インスタンスを初期化 global $kpc; $version = 0.3; $kpc = new Kpwp_Client($version); //アクティベーションフックに登録 register_activation_hook(__FILE__, array($kpc, "activate"));
オリジナルテーブルを追加
ほぼこちらのブログのパクリです。パクリで申し訳ないですが、今の段階では、とにかく動くかどうかを確認しています。client.class.phpというファイルを別途作ってkpw_clientというテーブルを作成する関数を定義します。
//client.class.php class Kpwp_Client{ var $table = "kpw_client"; function sql(){ $char = defined("DB_CHARSET") ? DB_CHARSET : "utf8"; return <<<EOS CREATE TABLE {$this->table} ( `ID` BIGINT(11) NOT NULL AUTO_INCREMENT, `object_id` BIGINT(11) NOT NULL, `post_type` VARCHAR(45) NOT NULL, `positive` BIGINT(11) NOT NULL, `negative` BIGINT(11) NOT NULL, `updated` DATETIME NOT NULL, UNIQUE(`ID`) ) ENGINE = MyISAM DEFAULT CHARSET = {$char} ; EOS; } function __construct(){ //初期化時にテーブル名を決定する global $wpdb; $this->db = $wpdb->prefix.$this->db; //オプションからkpc_client_db_versionというデータを取得する。なければ0。 $this->db_version = get_option('kpc_client_db_version', 0); } function activate(){ global $wpdb; //データベースが存在するか確認 $is_db_exists = $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $this->table)); if($is_db_exists){ //データベースが最新かどうか確認 if($this->db_version >= $this->version){ //必要なければ関数を終了 return; } } //ここまで実行されているということはデータベース作成が必要 //必要なファイルを読み込み require_once ABSPATH."wp-admin/includes/upgrade.php"; //dbDeltaを実行 //データベースが作成されない場合はSQLにエラーがあるので、 //$wpdb->show_errors(); と書いて確認してください dbDelta($this->sql()); //データベースのバージョンを保存する update_option("kpc_client_db_version", $this->version); } } ?>
テーブルに行を追加
できたkpw_clientテーブルに行を追加しデーターを入れます。
//client.php //テーブルに行を追加 $tablenane = 'kpw_client'; global $wpdb; $wpdb->insert( $tablenane, array( 'positive' => 1, 'negative' => 2 ), array( '%d', '%d' ) );
phpMyAdminで確認する
実行するたびに行が追加されてしまいますが、とりあえず動いているようです。
やったー!
意味のないデーターですが追加されています。
あとは、こいつを「顧客」ページで読み出してやるだけ。
まとめ
やっぱプラグイン開発の勉強にはまとまった時間が必要ですね。あせってやると何がなんだかわからなくなってしまいます。
仕事も夏休みに入ったことだし、可能な限り順を追ってコツコツやっていこうと思います。
https://www.kantan-pro.com/wordpress%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e9%96%8b%e7%99%ba-%e3%80%90%e6%88%90%e5%8a%9f%e3%80%91%e4%bb%8a%e5%ba%a6%e3%81%93%e3%81%9d%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/
[temp id=1]