web-dev-qa-db-fra.com

Désactiver les plugins multisite sur des sites spécifiques

Sur un réseau multisite, certains plug-ins sont activés par le réseau et sont donc exécutés sur tous les sites du réseau. Cependant, je veux désactiver tous les plugins actifs du réseau sur certains sites.

Comment puis-je faire ceci?

1
shea

Les plugins actifs multisites sont stockés dans l'option de site active_sitewide_plugins. Nous pouvons nous connecter à cette option et renvoyer un tableau vide (aucun plugin n'est actif).

Ce fragment de code doit être installé en tant que plug-in à utiliser absolument .

<?php

/**
 * Plugin Name: Disable Sitewide Plugins
 * Author: Shea Bunge
 * Author URI: http://bungeshea.com
 * Version: 0.1
 */

global $blog_id;

if ( in_array( $blog_id, array( 6, 9, 42 ) ) {
    add_filter( 'pre_site_option_active_sitewide_plugins', '__return_empty_array' );
}

N'oubliez pas de remplacer array( 6, 9, 42 ) par un tableau des ID de blog sur lesquels vous souhaitez désactiver les plug-ins à l'échelle du réseau.

2
shea