web-dev-qa-db-ja.com

どのように/何がWordpressの自動更新を引き起こしますか?

私はWordpress 4.0.1をインストールし、これを私のwp-config.phpに追加しました( このリンク を介して)

define( 'WP_AUTO_UPDATE_CORE', true );

それから私は自分のサイトにアクセスしました(自動更新をトリガーするためにそのサイトにアクセスする必要がある前にどこかで読みました)...しかし数時間後に何も起こらなかった(私のサイトは4.1.1に自動更新されません)。

Wordpressが自動更新を引き起こす原因や原因についての情報が見つかりません(そして、サイトを訪問したことが読んだ場所のブックマークが見つかりません)。

Wordpressが自動更新されるきっかけとなる方法、またはその理由についての固いデータを知っている、または教えてくれる人はいますか?

6
codeview

Wordpress 4.7.3以降、次のシーケンスが成功すると自動更新がトリガーされます。すべてのコードはファイルwp-includes/update.phpにあります。

1. _maybe_update_core()が呼び出されます(admin_initアクションを介して)。

この関数はadmin_initアクションを介して実行されます。これは、ページがレンダリングされる前に各管理ページの先頭で実行されます。現在のワードプレスのバージョンが変更されていない限り(例えば、前回のバージョンからWordpressが手動で更新された場合など)、最新のバージョンチェックから現在時刻が12時間未満の場合( 一時データ を使用)自動更新が実行されました)。

function _maybe_update_core() {
    // include an unmodified $wp_version
    include( ABSPATH . WPINC . '/version.php' );

    $current = get_site_transient( 'update_core' );

    if ( isset( $current->last_checked, $current->version_checked ) &&
        12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) &&
        $current->version_checked == $wp_version ) {
        return;
    }
    wp_version_check();
}

2. wp_version_check()が実行され、新しいバージョンを確認し、自動更新を行うことが適切かどうかを判断します。

この機能は主に、バージョンチェックが頻繁に実行されないようにし(1分に最大1回)、api.wordpress.orgのバージョンチェックAPIからバージョン情報を取得するために使用されます。ただし、関数の最後で、更新をトリガーした要求がCRONタスクを介して行われ、自動更新が現在処理中でない場合は、更新が実行されます。

if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) {
    do_action( 'wp_maybe_auto_update' );
}

3. wp_maybe_auto_update()が実際のアップグレードを行います。

function wp_maybe_auto_update() {
    include_once( ABSPATH . '/wp-admin/includes/admin.php' );
    include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' );

    $upgrader = new WP_Automatic_Updater;
    $upgrader->run();
}

これがヒントです 手動で自動更新を強制する方法。

10
Quinn Comendant