要让插件在多站点环境中工作,有什么特殊要求吗?

时间:2013-03-13 作者:Dan

我已经开发插件大约一年了,但没有任何多站点环境的经验,每当出现特定于该环境的问题时,我通常都会感到困惑。

今天我有个问题Document Gallery. 问题指出,用户试图以网络管理员的身份安装插件,但在网络管理员或单个站点的破折号中看不到插件。此外,它们还声明短代码不起任何作用。

有成千上万的人在使用这个插件,没有任何问题,所以我相信它在非多站点上也能像预期的那样工作,但我只想验证一下,多站点没有什么特殊之处,可以使插件在多站点安装上不起作用。

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

您可以使用is_multisite() function 测试以查看您是否安装在启用多站点的站点中。这样,如果您需要提供特定于多站点安装的任何功能,您可以这样做:

if( is_multisite() ) {
    // special code here
}
我在工作中为我们的多站点环境编写的大多数插件没有为多站点环境定义任何特殊的内容。

此外。。。

我把你的文档库插件下载到了一个多站点安装中,这个安装是为我正在进行的一个项目设置的。当我在网络中启用插件时(即,在我的多站点安装中为每个站点启用插件),它在网络管理中仍然可见>;插件部分,但不是个人网站的插件部分。

当我禁用它时,它会重新出现在各个站点的插件部分。然后我就可以为各个站点启用它了。

当I网络启用插件时,[dg]短代码可供使用。当我在一个单独的站点上启用它时,[dg]短代码在该站点中可用。

这是我在Multisite中经常看到的行为,自WP版本3.0以来,我一直在工作中使用Multisite。

您的用户可能遇到插件冲突。我所能报告的是,您的插件在我的WordPress 3.5.1多站点安装中按预期工作。

结束

相关推荐

WP MultiSite:默认添加关于博客创建的页面

我希望在使用WP Multisite创建新站点时,在默认情况下添加一个页面。因此,我有一个创建两个页面的函数:function my_default_pages() { $default_pages = array(\'Impress\', \'Contact\'); $existing_pages = get_pages(); foreach($existing_pages as $page) { $temp[] = $p