WordPress更新定义了还是添加了过滤器?

时间:2015-09-18 作者:Thamaraiselvam

我正在尝试创建WordPress更新自动化插件。在这里,我有两个选项来启用和禁用更新。

通过定义,例如:defined( \'AUTOMATIC_UPDATER_DISABLED\',true )

2.通过add\\u过滤器

例如:add_filter( \'allow_major_auto_core_updates\', \'__return_true\', 1 );

我的问题是,如果我已通过禁用更新define 并且还通过add_filter 哪一个可行?做add_filter 是否重写“define”?或define 是否重写“add\\u filter”?

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

浏览Core_Upgrader::should_update_to_version() 方法,看起来我们can override 这个

 defined( \'WP_AUTO_UPDATE_CORE\' )    // true (all), false, minor
选中,用于设置本地布尔变量$upgrade_dev, $upgrade_minor$upgrade_major, 使用以下过滤器:

...
apply_filters( \'allow_dev_auto_core_updates\',   $upgrade_dev   ) 
...
apply_filters( \'allow_minor_auto_core_updates\', $upgrade_minor )
...
apply_filters( \'allow_major_auto_core_updates\', $upgrade_major )
...
因此,这些过滤器在WP_AUTO_UPDATE_CORE 持续检查。

类似地automatic_updater_disabled 过滤器可以覆盖AUTOMATIC_UPDATER_DISABLED 持续检查。

但请注意,我们can\'t override the constant itself.