Я только что понял, что традиционный uninstall.php
файл для плагина не работает в Multisite.
if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
exit();
delete_option( 'plugin_option_name' );
Это не удаляет опции под-сайтов во всех wp_SITE-ID_options
таблицах.
Есть ли стандартный способ сделать это?
plugin-development
multisite
brasofilo
источник
источник
restore_current_blog
вместо сохранения текущего идентификатора блога и переключения позжеuninstall.php
не всегда будет работать с идентификатором блога == 1?switch_to_blog(1)
когда у нас естьrestore_
функция ... Не помню точно, где я читал об изменении основного экземпляра блога ...uninstall.php
файл в плагине будет вызываться только в том случае, если 1) он существовал до активации плагинов (если это так, имя плагина будет храниться в таблице параметров блога); 2) при вызовеget_option('uninstall_plugins')
фактически выдает этот конкретный плагин. Похоже, он не работает на Multisite, потому что информация о плагине для всей сети хранится вsitemeta
таблице.