2022-03-18

WordPressの自動更新(アップデート)を停止させる方法

WordPressに関する記事

WordPress(ワードプレス)は、機能改善やセキュリティ上の対策が行われるなど、日々進化しています。

自動バックグラウンド更新機能はバージョン3.7で導入されました。インストール直後デフォルトの状態では、マイナーリリースおよび翻訳ファイルのみ自動更新の対象になっています。(メンテナンスやセキュリティのため)

しかし、アップデートによって意図しない更新がなされ、サイト自体やアップデート後のサイト更新フローに影響がないとは言えません(と思います…)。自動更新をせず、アップデート内容を理解した上で、手動更新を行ったほうが不要なトラブルは避けやすいとわたしは考えます。

今回は自動更新機能無効化の方法について紹介します。

WordPressのバージョンと更新の概要

WordPressには4種類の自動更新機能があります。

  • コアの更新
  • プラグイン更新
  • テーマ更新
  • 翻訳ファイル更新

バージョンの表記

WordPressのバージョンは4.9.9のように表されます。

メジャーバージョン

1番左の数字はメジャーバージョンといい、もっとも大きな変更を表します。アップデートを行うと分かるのですが、見た目も機能もガラリと変更されされます。
PHPの対応バージョンが合わないなど、動作に影響する場合も多いので慎重に行う必要があります。

マイナーバージョン

真ん中の数字はマイナーバージョンといい、不具合の修正やセキュリティに関する修正、変更などに関係します。

ビルドバージョン

1番右の数字はビルドバージョンといい、軽微な不具合の修正、変更などに関係します。

スポンサーリンク

すべての自動更新を無効化させる

コアを含むすべての自動更新を完全に無効化する方法です。wp-config.phpに記述を行うことでコントロール可能です。更新に関しては自身の責任で全て行う必要があります。

下記をwp-config.phpの最後に追記します。

define('AUTOMATIC_UPDATER_DISABLED', true);

デフォルトで自動更新が有効になっていることからも分かるように、WordPressの開発者は自動更新を推奨しているようです。公式サイトにもその旨の記載があります。

コアの開発者は、マイナーリリースと翻訳ファイルの自動更新を最初から有効化するという意識的な決定を行いました。自動更新は皆さんのサイトを最新かつ安全に保つための最良の方法のひとつであるため、今後は、これらの更新を無効化することを強く非推奨とします。

https://ja.wordpress.org/support/article/configuring-automatic-background-updates/

コア自動更新を設定する

自動更新の設定方法は、wp-config.phpに定義する方法と、フィルターを追加する方法の2種類があります。下記はwp-config.phpに定義する方法のみご紹介します。フィルターで設定すると、より細かな設定が可能となります。興味のある方は自身で調べてみてください。

状況に応じて、下記の3つの方法のいずれかで設定します。

1.値がtrueの場合…開発版、マイナー、メジャーの各アップデートをすべて有効化

define('WP_AUTO_UPDATE_CORE', true);

2.値がfalseの場合…開発版、マイナー、メジャーの各アップデートをすべて無効化

define('WP_AUTO_UPDATE_CORE', false);

3.値がminorの場合…マイナーアップデートを有効化、開発版、メジャーアップデートは無効化

define('WP_AUTO_UPDATE_CORE', minor);

スポンサーリンク

プラグインとテーマの更新を設定する

プラグインとテーマの自動更新はデフォルトで無効化されています。プラグイン、テーマの自動更新を有効化するには、フィルターで設定を行います。
今回はテーマフォルダ内のfunctions.phpに以下を記入しますが、must-use プラグインを使用するとより保守性が高まります。

※なお、wp-config.php内でadd_filter() の呼び出しを行わないでください。WP-CLIなどのアプリケーションとのコンフリクトが発生する可能性があります。

プラグインの自動更新

プラグインの自動更新を有効化するには、テーマフォルダ内のfunctions.phpに以下を記入します。

1.有効化

add_filter('auto_update_plugin', '__return_true');

2.無効化

add_filter('auto_update_plugin', '__return_false');

スポンサーリンク

テーマの自動更新

テーマの自動更新を有効化するには、テーマフォルダ内のfunctions.phpに以下を記入します。

1.有効化

add_filter('auto_update_theme', '__return_true');

2.無効化

add_filter('auto_update_theme', '__return_false');

翻訳の自動更新

翻訳ファイルについてはデフォルトで有効化されています。下記を記入することにより無効化することができます。

add_filter('auto_update_translation', '__return_false');

スポンサーリンク

まとめ

WordPress公式サイトでは、自動更新の無効化を強く非推奨しています。しかし、わたしはサイト管理者自身で更新をコントロールできる状態の方が健全だと考えます。
もちろん、サイト管理社によって知識量や立場が違いますので一概には言えません。個別具体的に判断する必要があります。

更新を行う際は、バックアップをとり、開発環境で動作確認を行うなど、更新の影響が最小限になるように進めましょう。