プラグインを「有効化」するタイミングで、そのプラグインを使うにあたっての初期設定をプログラムすることができます。
例えば、プラグイン内で使用するデータベース内のテーブルを作成する等といったことを記述します。
また、プラグインを停止したタイミング。プラグインをアンインストールしたタイミングでそれぞれの動作をプログラムすることができます。
試しに、プラグインを有効化したタイミングの挙動を書いてみます。
register_activation_hook(__FILE__, array('SamplePlugin1', 'myplugin_activate'));
まず、プラグイン内のクラスの外に、上記の命令を記述します。
次にクラス内に以下のメソッドを追加します。
function myplugin_activate()
{
//テーブル作成などなど
}
ここでは、具体的なテーブル作成の命令は書いていませんが、このメソッド内に初期化の命令をまとめて記載しておくといいと思います。
これと同様に、停止時、アンインストール時には、次のように書きます。
register_deactivation_hook(__FILE__, array('SamplePlugin1', 'myplugin_unactivate'));
register_uninstall_hook(__FILE__, array('SamplePlugin1', 'myplugin_uninstall'));
同様にメソッドもクラス内に書いて用意しておきます。
function myplugin_unactivate()
{
//テーブルデータ消去などなど
}
function myplugin_uninstall()
{
//テーブル削除などなど
}
以上になります。
出来上がったプログラムの全体は、以下のようになります。
<?php
/*
Plugin Name: SamplePlugin1
Plugin URI: http://
Description: サンプルプラグイン。
Version: 1.0
Author: sample
Author URI: http://
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
register_activation_hook(__FILE__, array('SamplePlugin1', 'myplugin_activate'));
register_deactivation_hook(__FILE__, array('SamplePlugin1', 'myplugin_unactivate'));
register_uninstall_hook(__FILE__, array('SamplePlugin1', 'myplugin_uninstall'));
class SamplePlugin1
{
function __construct()
{
add_action('admin_menu', array($this, 'add_pages'));
}
function add_pages()
{
add_menu_page(
'SamplePlugin1 Plugin Settings',
'SamplePlugin1',
'manage_options',
'SamplePluginMenu',
array($this, 'sample_plugin')
);
}
function myplugin_activate()
{
//テーブル作成などなど
}
function myplugin_unactivate()
{
//テーブルデータ消去などなど
}
function myplugin_uninstall()
{
//テーブル削除などなど
}
}
new SamplePlugin1;
まだ、具体的な処理は入れていませんが、全体的な骨格が少しづつできてきました。