ワードプレスのregister_activation_hookアクションの使用方法・解説

概要

register_activation_hookは、プラグインのアクティベーション時に呼び出される関数を登録するためのアクションです。このアクションは、プラグインを有効化した際の特定の処理を行うためによく使用されます。具体的には、データベースのテーブルを作成したり、デフォルトのオプションを追加したりする場合などです。以下のような目的で利用されることが多いです:

  1. プラグインの設定オプションの初期値を保存
  2. 必要なデータベーステーブルの作成
  3. カスタム投稿タイプのデフォルトデータの追加
  4. プラグインの初期データのインポート
  5. サーバーの設定値の確認
  6. デフォルトのウィジェットの登録
  7. 初回実行時のインストラクション表示
  8. 他のプラグインとの互換性確認

構文

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' );

このコードは、プラグインの初回アクティベート時に特定の初期設定を実行します。

この関数について質問する


上の計算式の答えを入力してください