問題描述
我正在建立一個 (潛在的) 大型多站點網絡,我希望在需要時添加和配置站點,使其儘可能容易。我目前處於處理插件的階段。
使用多站點我知道幾種不同的方法可以激活插件
-
將插件放在
/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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。