您可以筛选active_plugins
选项并删除您希望永远不会在站点上启用的插件。但是,您必须使用mu插件(wp内容/mu插件),因为从常规插件中筛选选项太晚了:
add_filter( \'option_active_plugins\', function( $plugins ) {
if ( get_current_blog_id() !== 1 ) {
$plugin = \'plugin-name/plugin-name.php\';
$key = array_search( $plugin, $plugins );
if ( $key !== false ) {
unset( $plugins[ $key ] );
}
}
return $plugins;
});
注意我是如何使用
get_current_blog_id()
如果您决定将HTTPS添加到主站点或更改域名,请单击此处以确保逻辑不会中断。
然后,您可能希望从用户看到的列表中删除插件,这样他们就不会感到困惑,因为当他们点击激活链接时不会发生任何事情:
add_filter( \'all_plugins\', function( $plugins ) {
if ( get_current_blog_id() !== 1 ) {
$plugin = \'plugin-name/plugin-name.php\';
unset( $plugins[ $plugin ] );
}
return $plugins;
});
另一种方法是让您的插件成为mu插件,即在整个网络上强制且始终处于活动状态,然后在主插件文件中简单地:
if ( get_current_blog_id() !== 1 )
return; // Don\'t execute the rest of this file
// Your plugin stuff goes here
因此,该文件将在网络中的所有站点上进行解析,但执行将立即返回。
希望有帮助!