Activate Default Plugins on New Network Sites
Activates a list of plugins on each new site as it is created, so every site starts with the same toolkit without network-activating it everywhere.
Opens WPIDE on
Code
if ( ! is_multisite() ) {
return;
}
$wpide_plugins = array( // Plugin basenames, e.g. 'akismet/akismet.php'.
);
add_action( 'wp_initialize_site', function ( $site ) use ( $wpide_plugins ) {
if ( ! $wpide_plugins ) {
return;
}
require_once ABSPATH . 'wp-admin/includes/plugin.php';
switch_to_blog( $site->blog_id );
foreach ( $wpide_plugins as $plugin ) {
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) && ! is_plugin_active_for_network( $plugin ) ) {
activate_plugin( $plugin, '', false, true );
}
}
restore_current_blog();
}, 200 );
Notes
List plugin paths as folder/main-file.php. Plugins that are missing or already network-active are skipped.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.