# 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.

- Type: PHP
- Runs: Run everywhere
- Category: [Multisite](https://wpide.com/library/category/multisite/)
- Tags: new-site, plugins, defaults
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/ms-new-site-default-plugins/

## Code

```php
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 use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Activate Default Plugins on New Network Sites" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
