multisite – ¿Cómo deshabilitar un complemento habilitado para la red para un solo sitio?

Pregunta:

Estoy en el proceso de configurar una red multisitio (potencialmente) grande y estoy buscando que ahora sea lo más fácil posible agregar y configurar sitios cuando sea necesario. Actualmente estoy en la fase en la que estoy tratando con complementos.

Con multisitio, conozco varias formas diferentes de activar complementos

  • Coloque el complemento en /plugins , actívelo en cada sitio de forma individual
  • Coloque el complemento en /plugins , use 'activación de red' para activarlo en todos los sitios
  • Coloque el complemento en /mu-plugins , que se activa automáticamente en cada sitio

Ahora, he estado jugando con la configuración y quiero activar Akismet en todos los sitios menos uno o dos. Pensé que podría activar el complemento en red y luego deshabilitarlo en un solo sitio, pero no puedo hacerlo; si uso la activación de red, solo existe la opción de 'desactivar red', que desactiva el complemento en todos los sitios.

¿Existe alguna manera de activar la práctica funcionalidad de la red pero aún así tener la conveniencia de poder desactivar complementos sitio por sitio?

Respuesta:

Puede utilizar el filtro site_option_* .

Por ejemplo, lo siguiente deshabilitará akismet en el blog con id 2.

add_filter('site_option_active_sitewide_plugins', 'modify_sitewide_plugins');

function modify_sitewide_plugins($value) {
    global $current_blog;

    if( $current_blog->blog_id == 2 ) {
        unset($value['akismet/akismet.php']);
    }

    return $value;
}

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım