web-dev-qa-db-ja.com

W3 Total Cache - マルチサイトで "Performance"メニューを無効にする方法?

各サイトにドメインマッピングとW3 Total Cacheが設定されたマルチサイトインストールを実行しています。私は伝統的な意味でネットワークを使用しません - 各サイトは一般的に独立しています。マッピングプラグインの「ドメインオプション」で2番目のチェックボックスがチェックされているだけです。

ただし、各サイトの管理者は[パフォーマンス]メニューを表示してそのオプションを変更できます。これを無効にしたいのですが。

最善の方法は?

1
kenny

私はそれが最善の方法であるかどうかはわかりませんが、最近行ったこと(ここで答えから選んだこと)は、特定の条件が満たされない場合はメニューページを削除し、すべてのキャップを更新することです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';
        }
    }
}

編集:私はこれが「よりよい」かどうかわからないが、それはまたうまくいくようです。

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