(これはテストされていません)
add_action( 'activated_plugin', 'wpse76145_no_network_activation',10,2 );
function wpse76145_no_network_activation( $plugin, $network_wide){
if( $plugin == 'myplugin/myplugin.php' && $network_wide ){
//Plugin was network activated
//Network deactivate
deactivate_plugins( $plugin,false, true );
//Activate on single site
activate_plugins( $plugin);
add_option('wpse76145_network_activate_notice',1);
}
}
次にadmin_notices
、wpse76145_network_activate_notice
オプションとディスプレイの通知を確認します。
注: 'myplugin / myplugin.php'をハードコード化しない方が良いでしょう-私はそれを置き換えることでplugin_basename(__FILE__);
うまくいくと思います(そして望ましいです)。
マルチサイトのアクティベーションが問題ない場合は編集し、switch_to_blog()
各プラグインで個別にアクティベートするために使用できます。ユーザーが要求したことをしていないので、私はまだ通知を表示します。
wp_die
そこにa を入れてリダイレクトをスキップすることができましたが、説明なしで非アクティブ化するよりも少し面倒ではないようです。:)