【WordPress】自動アップデートを抑制する

はじめに

 

WordPressをインストールするとデフォルトでは、WordPressのバージョンが更新される度に自動的にインストールされているWordPressのバージョンも更新されます。これは、WordPressの脆弱性などの不具合が修正されたとき、タイムラグなく最新のバージョンに更新されるという意味では必要不可欠な機能です。しかし、メジャーバージョンアップが自動的に行われた場合、WordPressの仕様が変わることがあります。そうすると今まで動いていたプラグインや表示されていたテーマが突然表示されてします場合があります。

今回は、WordPressの自動更新の抑制の仕方をいくつか紹介します。

wp-config.phpに設定追加

wp-config.phpに設定を追加することでWordPress本体の自動更新有無を設定することができます。

 

 

自動更新の完全無効化

AUSTOMATIC_UPDATER_DISABLEDを有効にすることですべての自動更新を無効にすることができます。

define( 'AUTOMATIC_UPDATER_DISABLED', true );

 

 

更新バージョンに応じた自動更新の無効化

 

WP_AUTO_UPDATE_COREを設定することにより、更新バージョン(ベータ版、メジャー更新またはマイナー更新)によって、自動更新する/しないを設定することができます。

 

1.ベータ版、マイナーアップデート、メジャーアップデートすべて有効化

define( 'WP_AUTO_UPDATE_CORE', true );

 

2.ベータ版、マイナーアップデート、メジャーアップデートすべて無効化

define( 'WP_AUTO_UPDATE_CORE', false );

 

3.マイナーアップデートのみ有効化、ベータ版、メジャーアップデートは無効化

※こちらの設定がオススメです
WordPressバグ対応のアップデートはなるだけ早い方がよいです。
システムにアップデートをできるだけさせたくないという方もマイナーアップデートの自動更新だけは有効化しましょう。

define( 'WP_AUTO_UPDATE_CORE', 'minor' );

 

add_filterによる自動更新の設定

WordPressのフックを使用して自動更新の有無を設定できます。

 

ベータ版のアップデート

allow_dev_auto_core_updatesのフックを設定することでベータ版の自動更新の有効無効を設定することができます。

//開発版の自動更新を無効化
add_filter( 'allow_dev_auto_core_updates', '__return_false' );

 

マイナーアップデート

allow_minor_auto_core_updatesのフックを設定することでマイナーアップデートの自動更新の有効無効を設定することができます。

//マイナーアップグレードの自動更新を有効化
add_filter( 'allow_minor_auto_core_updates', '__return_true' );

 

メジャーアップデート

allow_major_auto_core_updatesのフックを設定することでメジャーアップデートの自動更新の有効無効を設定することができます。

//メジャーアップグレードの自動更新を無効化
add_filter( 'allow_major_auto_core_updates', '__return_true' );

 

翻訳ファイル

auto_update_translationのフックを設定することで翻訳ファイルの自動更新の有効無効を設定することができます。

//翻訳ファイルの自動更新を無効化
add_filter( 'auto_update_translation', '__return_false' );

 

プラグイン

auto_update_pluginのフックを設定することでプラグインの自動更新の有効無効を設定することができます。

//プラグインの自動更新を無効化
add_filter( 'auto_update_plugin', '__return_false' );

 

テーマ

auto_update_themeのフックを設定することでテーマの自動更新の有効無効を設定することができます。

//テーマの自動更新を無効化
add_filter( 'auto_update_theme', '__return_false' );

 

更新通知のみ停止(更新あり)

auto_core_update_send_emailのフックを設定することで自動更新時の更新通知メールを停止することができます。

//自動更新時の更新通知メールを無効化
add_filter( 'auto_core_update_send_email', '__return_false' );

 

特定プラグインの更新通知を停止

プラグインをカスタマイズした場合など、特定のプラグインのみ更新したくない時には次の方法で更新通知を無効化できます。

 

更新通知対象プラグインから除外

site_option__site_transient_update_pluginsのフックに次の独自関数を登録することで対象のプラグインのみ更新通知を無効にできます。

add_filter('site_option__site_transient_update_plugins', '動作を変更するための独自関数名');

function 動作を変更するための独自関数名($data) {
    $plugin_name = 'プラグインフォルダ名/プラグインファイル名';
    if (isset($data->response[$plugin_name])) {
        unset($data->response[$plugin_name]);
    }
    return $data;
}