问题描述
我正在建立一个 (潜在的) 大型多站点网络,我希望在需要时添加和配置站点,使其尽可能容易。我目前处于处理插件的阶段。
使用多站点我知道几种不同的方法可以激活插件
-
将插件放在
/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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。