概要
register_activation_hook
は、プラグインのアクティベーション時に呼び出される関数を登録するためのアクションです。このアクションは、プラグインを有効化した際の特定の処理を行うためによく使用されます。具体的には、データベースのテーブルを作成したり、デフォルトのオプションを追加したりする場合などです。以下のような目的で利用されることが多いです:
- プラグインの設定オプションの初期値を保存
- 必要なデータベーステーブルの作成
- カスタム投稿タイプのデフォルトデータの追加
- プラグインの初期データのインポート
- サーバーの設定値の確認
- デフォルトのウィジェットの登録
- 初回実行時のインストラクション表示
- 他のプラグインとの互換性確認
構文
register_activation_hook( 'plugin_file', 'function_name' );
パラメータ
- plugin_file: プラグインのメインファイルのパス。
- function_name: アクティベーション時に実行される関数の名前。
戻り値
- なし。
関連する関数
使用可能なバージョン
- WordPress 2.0以降で使用可能。
コアファイルのパス
wp-includes/plugin.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: デフォルトオプションの保存
function my_plugin_activate() {
add_option( 'my_plugin_option', 'default_value' );
}
register_activation_hook( __FILE__, 'my_plugin_activate' );
このコードは、プラグインがアクティベートされた際にデフォルトのオプションをデータベースに追加します。
サンプルコード2: データベーステーブルの作成
function my_plugin_create_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'my_plugin_table';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'my_plugin_create_table' );
このコードは、プラグインがアクティベートされた際に新しいデータベーステーブルを作成します。
サンプルコード3: 初期データの設定
function my_plugin_instantiate_data() {
// デフォルトデータのセットアップ
if ( get_option( 'my_plugin_data' ) === false ) {
update_option( 'my_plugin_data', array( 'item1' => 'value1' ) );
}
}
register_activation_hook( __FILE__, 'my_plugin_instantiate_data' );
このコードは、プラグインのアクティベート時にデフォルトのデータを設定します。
サンプルコード4: ユーザー通知の表示
function my_plugin_activation_notice() {
set_transient( 'my_plugin_activation_notice', 'Plugin activated successfully!', 30 );
}
register_activation_hook( __FILE__, 'my_plugin_activation_notice' );
このコードは、プラグインがアクティベートされた際に通知メッセージを表示するためのトランジェントを設定します。
サンプルコード5: 初期設定の自動実行
function my_plugin_setup() {
if ( ! get_option( 'my_plugin_setup_complete' ) ) {
// 初期設定を行う処理
update_option( 'my_plugin_setup_complete', true );
}
}
register_activation_hook( __FILE__, 'my_plugin_setup' );
このコードは、プラグインの初回アクティベート時に特定の初期設定を実行します。