方法1: register_uninstall_hook
アンインストールフックを設定するには、register_uninstall_hook() 関数を使用します:
register_uninstall_hook(
__FILE__,
'pluginprefix_function_to_run'
);
方法2: uninstall.php
この方法を使用するには、プラグインのルートフォルダー内に uninstall.php
ファイルを作成する必要があります。この魔法のファイルは、ユーザーがプラグインを削除すると自動的に実行されます。
例えば: /plugin-name/uninstall.php
何かを行う前に、uninstall.php
で定数 WP_UNINSTALL_PLUGIN
を常に確認してください。これにより、直接アクセスから保護されます。
定数は、uninstall.php
の呼び出し中に WordPress によって定義されます。
定数は、register_uninstall_hook() によってアンインストールが実行されるときには 定義されません。
オプションエントリを削除し、データベーステーブルを削除する例は次のとおりです:
// if uninstall.php is not called by WordPress, die
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
die;
}
$option_name = 'wporg_option';
delete_option( $option_name );
// for site options in Multisite
delete_site_option( $option_name );
// drop a custom database table
global $wpdb;
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}mytable" );
マルチサイトでは、すべてのブログをループしてオプションを削除することは非常にリソース集約的です。