web-dev-qa-db-ja.com

自動更新チェックを禁止/無効にする

WordPressは自動的に自分自身とインストールされているすべてのテーマとプラグインの更新を確認します。これは( any )WordPressページをロードするのに煩わしいほど長い遅れを追加します。 1日に1回だけ行われ、その後のページロードでは実行されませんが、非常に長いため、最初のページを開く価値があるかどうかについて2度考えてしまいます(特にクイックを実行するだけの場合)。一日をWordPressで過ごすのではなく、.

私はとにかくたまに更新するだけで、とにかくとにかく手動で更新を実行したいので、私は管理バーから Updates ボタンを削除するためのプラグインを作成しました。これでうまくいくと思いましたが、どうやらボタンを外すだけで実際のチェックはバックグラウンドで実行されます。

世界中の他のすべてのプログラムで自動更新を無効にすることができるので、WordPressにも同じことをする方法があるはずですが、もしあるとすれば、それは少し余りにも隠れています。

私が解決策を見つけようとしたときに出てきた質問のすべては、自動更新を実際に適用するように強制する方法を見つけることに関して反対でした(単に自動的に更新をチェックするのではありません)。

WordPressで自動更新チェックを無効にするにはどうすればいいですか?

5
Synetech

コアの自動更新を無効にし、プラグインとテーマの自動更新を有効にする方法

WordPressコアの自動更新を停止したいが、プラグインやテーマ用にそれらを有効にするには、wp-config.phpファイルに次の行を追加します。コアの自動更新を停止します。

define( 'WP_AUTO_UPDATE_CORE', false );

それからプラグイン/テーマを有効にします。

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

WordPressの自動更新を完全に無効にする方法

WordPressの自動更新を完全に無効にしたい場合は、wp-config.phpファイルを開いて次の行を追加してください。

define( 'AUTOMATIC_UPDATER_DISABLED', true );
3
ravi patel

これは私にとってlocalhostでそれを無効にするのに役立ちました - それはそれがファイアウォールの内側にありタイムアウトの待ち時間が非常に大きいのでとても厄介でした。

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'AUTOMATIC_UPDATER_DISABLED', true );
define( 'WP_AUTO_UPDATE_CORE', false );

WP_HTTP_BLOCK_EXTERNALを無効にする必要があるかどうかはわかりません。他のサーバーとの通信が必要なサーバーでは無効にしないことをお勧めします。

1
Maciej Krawczyk

さて、ここで利用可能なアップデートを削除し、またアップデートチェックを防ぐ解決策があります。

この解決策はPHP> 5.3を想定しています(それは無名関数を使用しているため)

パート1)既存の更新をすべて消去します。

add_filter( 'site_transient_update_plugins',
    function ( $oUpdatesResult ) {
        if ( ! is_object( $oUpdatesResult ) ) {
            $oUpdatesResult = new stdClass();
        }
        $oUpdatesResult->response = array();
        return $oUpdatesResult;
    },
    PHP_INT_MAX
);

パート2)実際のチェックを実行する発信HTTPリクエストを防止します。

add_filter( 'pre_http_request',
    function ( $bFalse, $aReqParams, $sUrl ) {
        if ( strpos( $sUrl, '//api.wordpress.org/plugins/update-check/1.1/' ) ) {
            $bFalse = null;
        }
        return $bFalse;
    },
    PHP_INT_MAX,
    3
);

注意すべき点:

  • WordPressは、管理者側でプラグインページやアップデートページなどの特定のページを読み込んだときにのみアップデートをチェックするので、実際にはパフォーマンスが向上していません。
  • これはプラグイン専用です。テーマを処理するには、「plugin」が「theme」に置き換えられているところを除いて、ここに表示されるものを繰り返します。すなわちフィルタ名とURLに.
  • あなたはこれをあなたのテーマのfunction.phpに入れることができます
0
Paul G.

Mark Jarquithは、すでにしばらく前にこのブログに投稿しています。基本的には、WP HTTP APIフィルタを介して、wp dot org上のパブリックSVNリポジトリへのリクエストを保釈するだけです。

プラグインの場合(プラグイン内に配置する必要があります):

add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 );
function wpse_102554_deny_plugin_updates( $r, $url )
{
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r;

    $plugins = unserialize( $r['body']['plugins'] );
    unset(
        $plugins->plugins[ plugin_basename( __FILE__ ) ],
        $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
    );
    $r['body']['plugins'] = serialize( $plugins );

    return $r;
}

テーマの場合(テーマのfunctions.php内に配置する必要があり、現在アクティブなテーマに対してのみ機能します)。

add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 );
function wpse_102554_deny_theme_updates( $r, $url )
{
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r;

    $themes = unserialize( $r['body']['themes'] );
    unset(
        $themes[ get_option( 'template' ) ],
        $themes[ get_option( 'stylesheet' ) ]
    );
    $r['body']['themes'] = serialize( $themes );

    return $r;
}

John Blackburnは テーマの更新を無効にするプラグイン を書きました。

0
kaiser