多站点中的自动升级过滤器

时间:2013-11-20 作者:Chip Bennett

与此问题相关:How Do I Configure Automatic Updates in WordPress 3.7?

我帮助维护Update Control Plugin - source on wp dot org/trunk. 插件非常简单;它根据插件选项设置过滤器。例如,要启用插件的自动升级,请执行以下操作:

if ( $options[\'plugin\'] ) {
    add_filter( \'auto_update_plugin\', \'__return_true\', 1 );
}
除了在多站点网络中,一切都运行得非常好。

对于多站点网络环境,插件设计为仅在主网络站点上处于活动状态:

if ( is_multisite() && ! is_main_site() ) {
    // Multisite check
    // only run on the main site of a multisite network
    return;
} else {
    // do stuff
}
(注:我知道有条件的是过分的;! is_main_site() 已足够;我将在下一版本中进行清理。)

我已经把全班都吸引住了init:

add_action( \'init\', array( \'Stephanis_Update_Control\', \'go\' ), 0 );
供参考,here is the full code.

插件已在主站点上安装并处于活动状态。但更新不会启动。我在多台主机上的多个网络上进行了测试。在所有环境中,更新都适用于单站点安装,而不适用于多站点网络。

我是否遗漏了一些明显的东西?我查过了the core upgrade class, 什么也找不到。

注意:我有意避免挂接到插件选项的网络管理员。我在核心设置->常规屏幕上呈现插件选项,而不是添加特定于插件的设置页面。所以,我没有尝试过这种调试方法。

1 个回复
SO网友:bueltge

也许是钩子init 上课和上课都要迟到go(), 更新功能运行得更早?挂钩muplugins_loadedupdate_option 在初始化之前启动。

我没有测试你的代码,只是一个提示,不是一个解决方案。也许还可以帮助分析屏幕截图中的挂钩顺序,通过插件创建。enter image description here

结束

相关推荐

Copy Root Multisite Site

我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?