Удалить скрипт для плагина в Multisite

Я только что понял, что традиционный файл uninstall.php вдоль плагина не работает в Multisite.

 if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); delete_option( 'plugin_option_name' ); 

Это не удаляет параметры wp_SITE-ID_options во всех wp_SITE-ID_options .

Есть ли стандартный способ для этого?

Поиск во всех файлах is_multisite() которые у меня есть на моем жестком диске, я нашел два, в которых была функция is_multisite() : редактор роли пользователя и добавление кода в голову .

Оба используют цикл $wpdb . Упрощенная:

 <?php /** * Plugin Uninstall Procedure */ // Make sure that we are uninstalling if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); // Leave no trail $option_name = 'plugin_option_name'; if ( !is_multisite() ) { delete_option( $option_name ); } else { global $wpdb; $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" ); $original_blog_id = get_current_blog_id(); foreach ( $blog_ids as $blog_id ) { switch_to_blog( $blog_id ); delete_option( $option_name ); // OR // delete_site_option( $option_name ); } switch_to_blog( $original_blog_id ); } 

Связанные вопросы и ответы: удаление, активация, деактивация плагина: типичные функции и инструкции