web-dev-qa-db-ja.com

WordPressのアップデート対add_filterの定義?

私はWordPressのアップデート自動化プラグインを作成しようとしています。ここで私はアップデートを有効にし無効にするための2つのオプションを得ました。

  1. 定義する

例:defined( 'AUTOMATIC_UPDATER_DISABLED',true )

2. add_filterを介して

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

私の問題は、defineを介して更新を無効にし、add_filterを介して有効にした場合、どれが機能するのでしょうか。 add_filterは 'define'をオーバーライドしますか?それともdefineは 'add_filter'をオーバーライドしますか?

6
Thamaraiselvam

Core_Upgrader::should_update_to_version()メソッドを読み飛ばして、私たちがを上書きすることができるようです

 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定数チェックの上に最後のWordがあります。

同様に、automatic_updater_disabledフィルタはAUTOMATIC_UPDATER_DISABLED定数チェックをオーバーライドできます。

しかし、私たち は定数そのものを上書きすることはできません

5
birgire