問題描述

我正在建立一個 (潛在的) 大型多站點網路,我希望在需要時新增和配置站點,使其儘可能容易。我目前處於處理外掛的階段。

使用多站點我知道幾種不同的方法可以啟用外掛

  • 將外掛放在/plugins 中,在每一個網站上啟用它

  • 將外掛放在/plugins 中,使用’network activate’ 在所有網站上啟用

  • 將外掛放在/mu-plugins 中,在每個站點自動啟用

現在,我一直在玩這些設定,我想在所有網站上啟用 Akismet,但是一兩個。我以為我可以網路啟用外掛,然後停用它在一個單一的網站,但我無法這樣做 – 如果我使用網路啟用,那麼只有’network deactivate’ 的選項 – 這將停用所有網站的外掛。

有沒有辦法使網路的方便功能啟用,但仍然有方便能夠在 site-by-site 基礎上停用外掛?

最佳解決方案

您可以使用過濾器 site_option_*

例如。以下將在 id 為 2 的部落格上停用 akismet 。

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;
}

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。