方法1: register_uninstall_hook

アンインストールフックを設定するには、register_uninstall_hook() 関数を使用します:

  1. register_uninstall_hook(
  2. __FILE__,
  3. 'pluginprefix_function_to_run'
  4. );

@

方法2: uninstall.php

この方法を使用するには、プラグインのルートフォルダー内に uninstall.php ファイルを作成する必要があります。この魔法のファイルは、ユーザーがプラグインを削除すると自動的に実行されます。

例えば: /plugin-name/uninstall.php

何かを行う前に、uninstall.php で定数 WP_UNINSTALL_PLUGIN を常に確認してください。これにより、直接アクセスから保護されます。

定数は、uninstall.php の呼び出し中に WordPress によって定義されます。

定数は、register_uninstall_hook() によってアンインストールが実行されるときには 定義されません

オプションエントリを削除し、データベーステーブルを削除する例は次のとおりです:

  1. // if uninstall.php is not called by WordPress, die
  2. if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
  3. die;
  4. }
  5. $option_name = 'wporg_option';
  6. delete_option( $option_name );
  7. // for site options in Multisite
  8. delete_site_option( $option_name );
  9. // drop a custom database table
  10. global $wpdb;
  11. $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}mytable" );

マルチサイトでは、すべてのブログをループしてオプションを削除することは非常にリソース集約的です。