作成したテーブルに、サンプルデータを登録する関数を作成します。
fow_install_sample_data関数の作成
onlinehelp_db.php
に、以下の関数を追加します。
/**
* テーブルにサンプルデータを登録する
*/
function fow_install_sample_data()
{
global $wpdb;
$title = 'オンラインヘルプへようこそ';
$body = 'プラグインのインストールに成功しました。<br />これはサンプルのデータです。これを編集して、最初の項目を作成してください。';
$data = array(
'title' => $title,
'helpbody' => $body,
);
$data_format = array(
'%s',
'%s',
);
$wpdb->insert($wpdb->prefix . FOW_OH_TABLES['helpbody'], $data, $data_format);
}
(49行目)
データベースとやりとりするための、$wpdb
グローバル変数です。
(51-52行目)
テーブルに登録するサンプルデータです。
(54-59行目)
登録するデータと、データの形式を指定する配列です。
$data
には、フィールド名=>データ の連想配列を入れます。
$data_format
には、データの型を指定します。指定できるのは、
%s
文字列%d
整数%f
実数
の3種類だけです。
(64行目)
$wpdbオブジェクトのinsert
メソッドで、INSERT文が実行されます。
アクションフックの登録
作成したfow_install_tables
関数と、fow_install_sample_data
を実行すれば、テーブルが作成され、サンプルデータが登録されます。しかし、プラグインのコードが実行されるたびに、これらの関数が呼び出されるのは困ります。プラグインを初めて使おうとしたときに、一度だけ実行されれば充分です。
このようなときはアクションフックを使用します。アクションフックとは、何かの動作(アクション)がなされるとき、その動作のついでに実行される処理だと考えてください。
インストールしたプラグインが有効化されるとき、register_activation_hook
アクションが発生します。このアクションにフック(実行したい関数を引っかける)すれば、プラグインが有効化されたときだけ、テーブルを作成したり、サンプルデータを登録したりできるようになります。
アクションフックはonlinehelp_main.php
に記述します。onlinehelp_main.phpに以下のコードを追加します。
const FOW_OH_PLUGIN_DIR = WP_PLUGIN_DIR . '/fow-online-help';
require_once FOW_OH_PLUGIN_DIR . '/onlinehelp_consts.php';
require_once FOW_OH_PLUGIN_DIR . '/onlinehelp_db.php';
/**
* フック
*/
register_activation_hook(__FILE__, 'fow_install_tables');
register_activation_hook(__FILE__, 'fow_install_sample_data');
(12行目)
オンラインヘルプのプラグインがインストールされているディレクトリーのパスを、FOW_OH_PLUGIN_DIR
定数に定義します。
(14-15行目)
onlinehelp_consts.php と onlinehelp_db.php をインクルードします。
(20-21行目)
作成したfow_install_tables
関数と、fow_install_sample_data
関数を、プラグイン有効化の際のアクションフックに登録します。これで、プラグインが有効化されたときだけ、2つの関数が実行されるようになります。
動作確認
テーブルが作成され、サンプルデータが登録されるか確認してみましょう。
もしプラグインがすでに有効化されているなら、プラグインをいったん停止します。
オンラインヘルプのプラグインを有効化してみましょう。エラーメッセージなどが表示されず、正常に有効化できれば、テーブルができているはずです。テーブルができているかどうかを確認するには、シェルなどからSQL文を入れて確認するか、HeidiSQLのようなGUIツールを使います。
図はHeidiSQLでデータベースを確認したところです。このようにテーブルが作成されており、サンプルデータが登録されていることが分かります。
参考リンク