有两种类型的多站点兼容性:
被动兼容性:不做任何特定于多站点的事情,只工作而不破坏任何东西活动兼容性:更改或扩展多站点特定的行为我想你已经出局了。查看我的slides from WordCamp Prague 2015 第二部分。
不应将未提及多站点的插件作为网络插件激活。例如,WooCommerce在安装过程中创建一些自定义表。如果您在网络范围内激活它,子网站将无法获得这些表,天空将落到您的头上。
不幸的是,大多数插件不检查它们的激活类型,所以它们允许您进行错误的激活。
相关的是用户体验问题,如管理指针或特殊的“关于”页面,您必须在不兼容的插件中点击任何子网站。Yoast’s WP SEO is one example. 我想,这个插件很快就会修复。:)
其他问题取决于您对该多站点所做的操作。如果您正在构建一个多语言网站,其中每个网站都是用一种语言编写的,并且这些网站彼此连接,那么您希望在编写内容时同步帖子。那意味着你打电话switch_to_blog()
在挂钩上save_post
, 并保存连接的帖子。save_post
现在将在一个请求期间多次调用。许多插件都没有意识到这种情况,所以他们只是覆盖了连接帖子的帖子元信息,以为自己还在第一篇帖子上。
注意那些处理post meta的插件,它们缺少这样的检查:
if ( is_multisite() && ms_is_switched() )
return FALSE;
这些插件不兼容。
当插件触及用户元字段或重写规则时,也会出现类似的问题,尽管很难指定。
一些插件尝试将内容写入文件,而不在文件名中包含站点ID。它们很可能也坏了。
正如Tom所说:创建一个测试安装,运行你能想象到的每个用例。您不能信任插件页面,而且通常没有足够的信息。