Title: activate_plugins
Published: April 25, 2014
Last modified: February 24, 2026

---

# activate_plugins( string|string[] $plugins, string $redirect, bool $network_wide = false, bool $silent = false ): true|󠀁[WP_Error](https://developer.wordpress.org/reference/classes/wp_error/)󠁿

## In this article

 * [Description](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#wp--skip-link--target)

Activates multiple plugins.

## 󠀁[Description](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#description)󠁿

When [WP_Error](https://developer.wordpress.org/reference/classes/wp_error/) is 
returned, it does not mean that one of the plugins had errors. It means that one
or more of the plugin file paths were invalid.

The execution will be halted as soon as one of the plugins has an error.

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#parameters)󠁿

 `$plugins`string|string[]required

Single plugin or list of plugins to activate.

`$redirect`stringrequired

Redirect to page after successful activation.

`$network_wide`booloptional

Whether to enable the plugin for all sites in the network.

Default:`false`

`$silent`booloptional

Prevent calling activation hooks.

Default:`false`

## 󠀁[Return](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#return)󠁿

 true|[WP_Error](https://developer.wordpress.org/reference/classes/wp_error/) True
when finished or [WP_Error](https://developer.wordpress.org/reference/classes/wp_error/)
if there were errors during a plugin activation.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#source)󠁿

    ```php
    function activate_plugins( $plugins, $redirect = '', $network_wide = false, $silent = false ) {
    	if ( ! is_array( $plugins ) ) {
    		$plugins = array( $plugins );
    	}

    	$errors = array();
    	foreach ( $plugins as $plugin ) {
    		if ( ! empty( $redirect ) ) {
    			$redirect = add_query_arg( 'plugin', $plugin, $redirect );
    		}
    		$result = activate_plugin( $plugin, $redirect, $network_wide, $silent );
    		if ( is_wp_error( $result ) ) {
    			$errors[ $plugin ] = $result;
    		}
    	}

    	if ( ! empty( $errors ) ) {
    		return new WP_Error( 'plugins_invalid', __( 'One of the plugins is invalid.' ), $errors );
    	}

    	return true;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/plugin.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/plugin.php#L869)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/plugin.php#L869-L890)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#related)󠁿

| Uses | Description | 
| [activate_plugin()](https://developer.wordpress.org/reference/functions/activate_plugin/)`wp-admin/includes/plugin.php` |

Attempts activation of plugin in a “sandbox” and redirects on success.

  | 
| [__()](https://developer.wordpress.org/reference/functions/__/)`wp-includes/l10n.php` |

Retrieves the translation of $text.

  | 
| [add_query_arg()](https://developer.wordpress.org/reference/functions/add_query_arg/)`wp-includes/functions.php` |

Retrieves a modified URL query string.

  | 
| [is_wp_error()](https://developer.wordpress.org/reference/functions/is_wp_error/)`wp-includes/load.php` |

Checks whether the given variable is a WordPress Error.

  | 
| [WP_Error::__construct()](https://developer.wordpress.org/reference/classes/wp_error/__construct/)`wp-includes/class-wp-error.php` |

Initializes the error.

  |

[Show 3 more](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/activate_plugins/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.6.0](https://developer.wordpress.org/reference/since/2.6.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Factivate_plugins%2F)
before being able to contribute a note or feedback.