Un buen día puede darse una situación como esta: hay un plugin que has activado para toda la red, pero te has dado cuenta que no usas en casi ninguno de los blogs que la conforman. Así que pulsas ‘Desactivar para la red’. Y ahora tienes que ir blog a blog activándolo dónde aún es usado, y con esperanzas de que no se hayan borrado los datos de configuración.

Para la próxima, sopesa tranquilamente los pros y contras a la hora de activar un plugin para la red. No es sencillo desactivarlo, manteniéndolo activado para los blogs que necesitan seguir utilizándolo. Por suerte, Konstantin Kovshenin tiene la solución, ha escrito un script CLI que activa el plugin que elijas en todos blogs de la red:

define( ‘ABSPATH’, ‘/ruta/a/wordpress/’ );
require( ‘/ruta/a/wp-config.php’ );
require_once( ABSPATH . ‘wp-admin/includes/plugin.php’ );
global $wpdb;
$blogs = $wpdb->get_col( “SELECT blog_id FROM $wpdb->blogs;” );
foreach ( $blogs as $id ) {
switch_to_blog( $id );
activate_plugin( ‘tu-plugin/tu-plugin.php’ );
restore_current_blog();
}
printf( “El plugin ha sido activado en %d blogs.”, count( $blogs ) );

Lo puedes usar antes de desactivar para la red un plugin, y así se mantendrá activado en todos los blogs que (puede que) lo usen cuando lo desactives. Entonces, los nuevos blogs ya no lo tendrán activado por defecto, y sólo tendrás que ir revisando los antiguos y desactivarlo en los que lo desees.

Como siempre, antes de hacer este tipo de modificaciones en la base de datos, haz una copia de seguridad (y asegúrate de que sabes restaurarla).