お盆休み前の仕事も無事完了し、自由な時間が多少できたのでゴニョゴニョやってます。
プラグイン有効化時に実行する処理〜オリジナルテーブルを追加しテーブルに行を追加
何とかここまでできました。細かいことは置いといて、今のところはテーブルが追加できればいいんです。
プラグイン有効化時に実行する処理
プラグインのテーブルは、プラグインを有効化した時に作成します。すでにテーブルがある場合はアップデートします。なので、アクティベーションフックに登録する必要があります。アクティベーションフックとは、プラグインを有効化したときに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で確認する
実行するたびに行が追加されてしまいますが、とりあえず動いているようです。
やったー!
意味のないデーターですが追加されています。
あとは、こいつを「顧客」ページで読み出してやるだけ。
まとめ
やっぱプラグイン開発の勉強にはまとまった時間が必要ですね。あせってやると何がなんだかわからなくなってしまいます。
仕事も夏休みに入ったことだし、可能な限り順を追ってコツコツやっていこうと思います。
プラグイン開発初心者向けの記事では、プラグイン有効化時の処理とテーブル追加方法が紹介されています。アクティベーションフックを使ってテーブルを作成し、行を追加する手順が詳しく解説されています。
プラグイン開発は時間と根気が必要ですが、記事の手順に従ってコツコツ取り組むことで成果が出ます。自由な時間を活用して、少しずつ進めていくことが大切です。プラグイン開発のスキルを身につけることで、WordPressのカスタマイズや機能拡張がより楽しくなります。頑張って取り組んでみてください。
-3.png)