WordPress自動更新プラグインの頻度を変更する


17

WordPressがコアとプラグインを更新する方法の私の理解から、12時間ごとに外に出て更新を探すということです。その時間はいつ設定されますか?初期インストールから12時間ですか?プラグインの自動更新フィルターadd_filter( 'auto_update_plugin' );を使用すると、理論的には特定の時間にのみプラグインの更新を許可できますが、その特定の時間が12時間のウィンドウに収まらない場合、プラグインは更新されないため、これをお願いします。

タイトルに質問を残して、WordPressが更新を検索する頻度を変更したり、自動更新する特定の時間を指定したりするにはどうすればよいでしょうか?

興味のある方のために、私がいじってしまったフィルターを以下に示します。月曜日から金曜日の午前8時から午後5時までの場合は確認します。

function maybe_update_plugins(){
    date_default_timezone_set('Your Timezone Here');
    $localAssoc = localtime(time(), true);
    $update = false;

    /***
    /* tm_wday[0] = Sunday
    /* tm_wday[6] = Saturday
    ***/
    if(
      $localAssoc['tm_wday'] > 0 && $localAssoc['tm_wday'] < 6 &&
      $localAssoc['tm_hour'] > 7 && $localAssoc['tm_hour'] < 17
    ){
        $update = true;
    }

    return $update;
}
add_filter( 'auto_update_plugin', 'maybe_update_plugins' );

編集簡潔な補足として、このフィルターは、プラグインが更新されるたび、複数のプラグインが更新される、フィルターが複数回実行されるたびに実行されるように見えます

回答:


10

Wordpressはコアとプラグインの更新を12時間ごとにチェックしますが、最後の更新が12時間以上前であれば更新をチェックします。

12時間の設定は wp-includes/update.php

最終更新日はwp_optionsテーブルに保存され、オプションは次のとおりです。

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

このチェックは12時間後に正確に行われるのではなく、次回条件が満たされたとき(少なくとも12時間が経過したとき)には、更新を見逃すことはありません。


わかりましたので、条件と一致するたびに(ページまたは特定のページが表示されるたびに聞こえる)答えと@Rarstをまとめると、チェックが12時間以上だった場合に、最後に更新がチェックされたタイミングを確認するテストがトリガーされます自動更新を実行します。そのため、フィルターを使用すると、実際にはチャンスの窓はありません。
Howdy_McGee

5

関連する機能wp_update_plugins()とはwp_maybe_auto_update()、同じ名前のWP-cronのイベントにフックされている一日二回のスケジュールで実行されています。

論理的には、最初のスケジュールは最初の実行時から刻み始めます。wp-cronの実装により(実際のcronではなく、サーバークロックではなくサイト訪問によってトリガーされます)、実際のwp-cronが期限を過ぎて起動するたびに「ドリフト」します。

プラグインの更新チェックは、プラグインリストのような特定の管理領域でも頻繁にトリガーされます(そのため、古い情報を見る可能性が低くなります)。

私の頭の上では、特定の時間の回廊にそれを入れるエレガントな方法があまり見当たりません。スケジュールの変更は非常に簡単です。ドリフトの説明はそれほど簡単ではありません。

これが何らかの形でミスクリティカルな要件である場合、wp-cli更新機能やComposerを介したプラグインの管理など、実際の更新用の実サーバーcronおよび外部ツールを使用して適切に処理することができます。


ミッションクリティカルではありませんwp-cronが、特定の管理ページビューまたは通常のページビューのみがトリガーされますか?ありがとう!
Howdy_McGee

1
@Howdy_McGee wp-cronは、ほとんどすべてによってトリガーされます(initフックの
起動
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.