web-dev-qa-db-fra.com

W3 Total Cache - Comment désactiver le menu "Performances" sous multisite?

J'exécute une installation multisite avec le mappage de domaine et le W3 Total Cache mis en place sur chacun des sites. Je n'utilise pas un réseau au sens traditionnel du terme - chaque site est généralement indépendant. Je n'ai que la deuxième case à cocher cochée dans "Options du domaine" pour le plug-in de mappage, si cela vous donne une idée quelconque.

Les administrateurs de chaque site peuvent toujours voir le menu Performance et modifier ses options. Je voudrais désactiver ceci.

Meilleure méthode?

1
kenny

je ne sais pas si c'est la meilleure méthode, mais quelque chose que je viens de faire (l'ayant choisie d'une réponse ici) était de supprimer la page de menu si certaines conditions ne sont pas remplies et de mettre à jour les majuscules. les pages supprimées de manière à ce qu’elles ne soient pas accessibles par une personne suffisamment habile pour se souvenir des URL.

add_action('admin_menu', 'wpa_44698',999);

function wpa_44698(){  
global $submenu; 
    //only show w3tc_general options to network admins in multisite
    if ( is_multisite() && !current_user_can( 'manage_network' ) ) {
        remove_menu_page('w3tc_general');

        // Still need to update cap requirements even when hidden
        if(isset($submenu['w3tc_general'])) foreach( $submenu['w3tc_general'] as $position => $data ) {
            $submenu['w3tc_general'][$position][1] = 'manage_network';
        }
    }
}

edit: Je ne sais pas s'il s'agit d'un "meilleur", mais cela semble également fonctionner.

add_action('admin_menu', 'wpa_44698',999);

function wpa_44698(){  
    global $submenu; 
    //only show w3tc_general options to network admins in multisite
    if ( is_multisite() && !current_user_can( 'manage_network' ) && isset($submenu['w3tc_general']) ) {
        foreach( $submenu['w3tc_general'] as $position => $data ) {       
            remove_menu_page($data[2]);
            $submenu['w3tc_general'][$position][1] = 'manage_network';
        }
    }
}
1
helgatheviking