register_activation_hook()


WordPressのregister_activation_hook()関数は、プラグインが有効化されたときに特定の処理を実行するために使用されます。

構文

register_activation_hook( string $file, callable $callback );

引数の説明:

  • $file (string) — プラグインのメインファイルのパス。
  • $callback (callable) — 有効化時に実行される関数。

例 1: シンプルな有効化フック

プラグインの有効化時にデータベーステーブルを作成します。

register_activation_hook( __FILE__, function() { global $wpdb; $wpdb->query("CREATE TABLE example_table (id INT PRIMARY KEY)"); });

例 2: オプションを追加する

プラグインの有効化時にデフォルトのオプションを追加します。

register_activation_hook( __FILE__, function() { add_option( 'my_plugin_option', 'default_value' ); });

例 3: 必要なディレクトリを作成

プラグインの有効化時に必要なフォルダを作成します。

register_activation_hook( __FILE__, function() { if ( ! file_exists( WP_CONTENT_DIR . '/my_plugin_folder' ) ) { mkdir( WP_CONTENT_DIR . '/my_plugin_folder' ); } });

例 4: ユーザー権限を追加

プラグインの有効化時にカスタム権限を追加します。

register_activation_hook( __FILE__, function() { add_role( 'custom_role', 'Custom Role', array( 'read' => true, 'edit_posts' => false ) ); });

例 5: cronジョブを登録

プラグインの有効化時にcronジョブを設定します。

register_activation_hook( __FILE__, function() { if ( ! wp_next_scheduled( 'my_cron_event' ) ) { wp_schedule_event( time(), 'hourly', 'my_cron_event' ); } });

注意事項

$file引数には、プラグインのメインファイルパスを正しく指定してください。
$callbackは有効なコールバック関数である必要があります。
無効化時にはregister_deactivation_hook()を使用して逆処理を実装することを推奨します。


関連機能: