ワードプレスのregister_uninstall_hook関数の使用方法・解説

概要

register_uninstall_hook関数は、プラグインのアンインストール時に呼び出される関数を登録するために使用されます。この関数を使用することで、プラグインがアンインストールされる際に必要なクリーンアップ処理を自動的に実行することができます。特によく使われる機能としては、以下のようなものがあります。

  1. データベースのオプション削除
  2. カスタムテーブルの削除
  3. プラグインによって作成されたデータの削除
  4. キャッシュのクリア
  5. ファイルの削除
  6. バックエンド設定のリセット
  7. フロントエンドのカスタマイズの削除
  8. 外部サービスとの連携解除

構文

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

非推奨または削除されたバージョン

特に非推奨または削除されたバージョンはありません。

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


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