概要
register_uninstall_hook
関数は、プラグインのアンインストール時に呼び出される関数を登録するために使用されます。この関数を使用することで、プラグインがアンインストールされる際に必要なクリーンアップ処理を自動的に実行することができます。特によく使われる機能としては、以下のようなものがあります。
- データベースのオプション削除
- カスタムテーブルの削除
- プラグインによって作成されたデータの削除
- キャッシュのクリア
- ファイルの削除
- バックエンド設定のリセット
- フロントエンドのカスタマイズの削除
- 外部サービスとの連携解除
構文
register_uninstall_hook( $plugin, $callback );
パラメータ
- $plugin (string): アンインストールを検出するために使用されるプラグインのファイル名。
- $callback (string|callable): アンインストール時に呼び出される関数の名前またはコールバック。
戻り値
なし
関連する関数
使用可能なバージョン
- WordPress 2.7以降
コアファイルのパス
wp-includes/plugin.php
サンプルコード
サンプル1: オプションの削除
プラグインがアンインストールされる際に、設定として保存されたオプションを削除します。
function myplugin_uninstall() {
delete_option( 'myplugin_settings' );
}
register_uninstall_hook( __FILE__, 'myplugin_uninstall' );
このコードは、myplugin_settings
というオプションを削除します。
サンプル2: カスタムテーブルの削除
プラグインが独自に作成したカスタムテーブルを削除する処理を追加します。
function myplugin_uninstall() {
global $wpdb;
$table_name = $wpdb->prefix . 'myplugin_table';
$wpdb->query( "DROP TABLE IF EXISTS $table_name" );
}
register_uninstall_hook( __FILE__, 'myplugin_uninstall' );
このコードは、アンインストール時にmyplugin_table
というテーブルを削除します。
サンプル3: ユーザーデータの削除
プラグインで使用される特定のユーザー情報を削除します。
function myplugin_uninstall() {
global $wpdb;
$wpdb->delete( "wp_myplugin_user_data", array( 'user_id' => get_current_user_id() ) );
}
register_uninstall_hook( __FILE__, 'myplugin_uninstall' );
このコードは、現在のユーザーに関連するデータを削除します。
サンプル4: フォルダの削除
プラグインが作成したフォルダをアンインストール時に削除します。
function myplugin_uninstall() {
$dir = plugin_dir_path(__FILE__) . 'data/';
array_map('unlink', glob($dir . "*.*"));
rmdir($dir);
}
register_uninstall_hook( __FILE__, 'myplugin_uninstall' );
このコードは、data
フォルダ内のすべてのファイルを削除し、フォルダも削除します。
サンプル5: キャッシュのクリア
プラグインによって使用されているキャッシュをクリアします。
function myplugin_uninstall() {
if ( function_exists('clear_cache') ) {
clear_cache();
}
}
register_uninstall_hook( __FILE__, 'myplugin_uninstall' );
このコードは、キャッシュクリアの関数を呼び出します。
この関数のアクションでの使用可能性
アクション | 使用可否 |
---|---|
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 |
非推奨または削除されたバージョン
特に非推奨または削除されたバージョンはありません。