WordPress Logo

WordPress 3.7 から自動アップグレード機能が導入されました。
あまり頻繁にログインすることがないサイトや初心者の方には非常にありがたい機能だと思います。しかし諸事情により自動更新だと何かと不都合な場合もあります。
そこで、自動アップグレード機能の制御方法をまとめてみました。

自動更新の初期設定

自動更新のデフォルトの仕様は以下のようになっています。

  • マイナー アップグレードは自動で行われる。
  • メジャー アップグレードは、これまで通り管理画面に通知が来るので手動で行う必要がある。
  • 翻訳ファイルのアップグレードは自動で行われる。
  • プラグインやテーマは自動更新されない。

マイナー アップデートとは「3.8」→「3.8.1」のようなケースです。
対してメジャー アップデートとは「3.8」→「3.9」のようなケース。
プラグインとの兼ね合いもあり、メジャー アップデートが自動で行われてしまうと突然不具合が発生することもあるので、これは当然の仕様だと思います。

さて。これらを制御するための方法を以下に紹介していきますが、具体的には3パターンの手法があります。

  • [wp-config.php]を使用する
  • [functions.php]を使用する
  • プラグインを使用する

[wp-config.php]を使用する

最もオススメなのが[wp-config.php]を使用する方法です。
他の2つ、[functions.php]を使用する方法とプラグインを使用する方法の場合は、テーマを変更したり、プラグインを停止すると、自動更新の制御が無効になってしまいますが、[wp-config.php]にコードを記述しておけば、ほぼ半永久的に設定が有効になります。

すべての自動更新を停止する

define( 'AUTOMATIC_UPDATER_DISABLED', true );

【コア ファイル】メジャー、マイナー共に動更新を有効化

define( 'WP_AUTO_UPDATE_CORE', true );

【コア ファイル】メジャー、マイナー共に自動更新を無効化

define( 'WP_AUTO_UPDATE_CORE', false );

【コア ファイル】マイナー・アップグレードのみ自動更新を有効化(開発版・メジャー・アップグレードは停止)

define( 'WP_AUTO_UPDATE_CORE', minor );

補足ですが、[wp-config.php]に変更を加える際、または変更を加えた後は、必ずパーミッションを確認して「400」に設定しておきましょう。
これはWordPressを運営する際の最も重要なセキュリティ対策です。

[functions.php]を使用する

[functions.php]を利用して、コアファイル、翻訳ファイル、テーマ、プラグインの自動更新を制御します。

すべてのコードは functions.php に記述することで有効になります。

すべての自動更新を停止する

add_filter( 'automatic_updater_disabled', '__return_true' );

【コア ファイル】マイナー アップグレードの自動更新を無効化(基本:有効)

add_filter( 'allow_minor_auto_core_updates', '__return_false' );

【コア ファイル】メジャー アップグレードの自動更新を有効化(基本:無効)

add_filter( 'allow_major_auto_core_updates', '__return_true' );

【コア ファイル】メジャー・マイナー共に自動更新を無効化

add_filter( 'auto_update_core', '__return_false' );

【翻訳ファイル】アップデートの自動更新を無効化(基本:有効)

add_filter( 'auto_update_translation', '__return_false' );

【プラグイン】アップデートの自動更新を有効化(基本:無効)

add_filter('auto_update_plugin', '__return_true');

【テーマ】アップデートの自動更新を有効化(基本:無効)

add_filter( 'auto_update_theme', '__return_true' );

【更新通知メール】更新通知メールを送信する

add_filter( 'auto_core_update_send_email', '__return_true' );

【更新通知メール】更新通知メールにデバッグ情報の表示

add_filter( 'automatic_updates_send_debug_email', '__return_true' );

こちらは各コード内で __return_true__return_false と記述されている箇所を書き換えると有効・無効を変更できます。

プラグインを使用する

運営の方針やセキュリティの関係で、場合によっては[wp-config.php]も[functions.php]も両方とも使えないケースもあります。
そんなときは代替案としてプラグイン[Advanced Automatic Updates]を使います。

本プラグインに関しての詳細やダウンロードは以下よりどうぞ。

Advanced Automatic Updates : WordPress › Advanced Automatic Updates « WordPress Plugins

自動更新の設定状況を確認する

最後に、自動更新の設定状況を一目で確認できる便利なプラグインを紹介します。

Background Update Tester

このプラグイン[Background Update Tester]を使うと、ダッシュボードに「Update Tester」という項目が追加されて、そこで自動更新が有効なのか無効なのかを確認することができます。

Background Update Tester : WordPress › Background Update Tester « WordPress Plugins

自動更新は無効化しよう。

ちなみにWordPress本家ではマイナー・アップグレードは自動更新を推奨しています。
しかし個人的には【すべての自動更新を無効化】して運営し、アップデートはすべて手作業で行っています。
理由はセキュリティ対策と、アップグレードの前には必ずバックアップを保存しておきたいため。

ワードプレス運営側でも何重ものチェックとセキュリティ対策を施したうえでリリースしているのでしょうが、危険を最小限に抑えるために石橋を叩いて渡っている次第です。

今日の一言:
ワードプレスのアップデートは石橋を叩いて渡れ!