如何判断一个插件是否与多站点兼容?

时间:2015-04-24 作者:Alfred Myers

作为WordPress管理员新手,我刚刚完成了我的第一次非自动WordPress升级。

我将五个不同的WordPress安装从4.1.3升级到4.2。

它们都是指作为一个主域和四个附加域托管在同一web主机上的不同web站点。

在每个网站上,我都使用以下插件:

Akismet为了进一步简化管理,我考虑将所有五个安装整合到一个多站点安装中。

到目前为止,我发现很难找到关于每个插件与插件网站上多站点安装的兼容性的明确答案。

Is the plugin\'s page the right place to search for this?

Is there a central location where this information can be found?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

有两种类型的多站点兼容性:

被动兼容性:不做任何特定于多站点的事情,只工作而不破坏任何东西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所说:创建一个测试安装,运行你能想象到的每个用例。您不能信任插件页面,而且通常没有足够的信息。

SO网友:Tom J Nowell

除非插件声明它是兼容的,否则唯一可靠的方法就是创建本地多站点安装并测试它。

有时,您可以查找一些迹象,但这些都是错误代码的症状,例如,对数据库表名称进行硬编码,而不是使用中的前缀$wpdb, 在这种情况下,我建议即使您不使用multisite,也不要使用插件

结束

相关推荐

如何在WordPress MultiSite中添加新站点和映射自定义域?

我在域上安装了wordpress多站点我将每个站点定义为一个子域例如:www.Example。com—主域www.test1。实例com---是另一个类似的站点,我有另外4/5个站点使用wordpress(WPMU)的单个安装现在我想添加一个完全限定的域,例如www.mydomain。com访问www.test1。实例com我曾尝试在我的web主机的cPannel中使用驻车域,但这是不可能的,因为子域实际上是由wordpress创建的在许多论坛中,我读到有一个插件(WordPress MU域映射),但我不