WordPressの自動更新
2025.03.15
WordPressの自動更新機能はWordPress 3.7以降で組み込まれた機能です。
基本情報として今回の「更新」というのは、大きく以下の4つの更新についてです。
1. WordPressコアファイルの更新
2. プラグインの更新
3. テーマの更新
4. 翻訳ファイルの更新
また、バージョンのアップデートにはマイナーバージョンのアップデートとメジャーバージョンのアップデートがあります。
WordPress 5.9.10 => 6.0 メジャーバージョンの更新
WordPress 6.6.2 => 6.7.1 マイナーバージョンの更新
※基本的にプラグインも同様です。
現行の最新バージョンであるWordPress6.7.2のデフォルトではWordPressのコアファイルの更新(上記 1.)と翻訳ファイルの更新(上記 4.)については自動更新が有効の設定となっています。
プラグインとテーマ(上記 3.4.)の自動更新はデフォルトでは無効化されています。
※プラグインとテーマについてはその制作者が自動更新の設定を有効化している場合もあります。
1.と4.の自動更新については基本的には自動更新が有効なデフォルトの状態で問題ありません。特にコアファイルの更新についてはセキュリティ関連の更新も含まれますので有効な状態にしておくべきです。
コアファイルが自動更新されてサイトに何か不具合が起きるのはほとんどの場合、コアファイル側の問題ではなく使用しているテーマ、あるいはプラグインによるものです。
テーマを自作されたり、制作会社のオリジナルテーマを使用しているケースでは、ほとんどの場合はそのテーマの記述の方に問題があるということです。
プラグインについても同様でプラグインの制作者がWordPressの仕様に沿ったものを作っていれば、コアファイルのマイナーバージョンの更新において通常は大きな問題は起きません。
万が一、問題が発生した場合もテーマについては、自作の場合はご自身で対応を、制作会社に依頼しているような場合も通常は連絡を取れば早急な対応を行なって頂けることが多いと思います。
プラグインに問題が発生した場合にはご自身では対応できなくなりますので、プラグイン制作者サイドの対応待ちということになります。そのようなことにならないようインストールして使用するプラグインは信頼できるものを本当に必要なものだけインストールすべきです。
※よくプラグインをたくさん入れると処理速度が落ちるためおすすめしないというようなお話を聞きますが、こういった面からも厳選してインストールすべきです。
つまり、現在のWordPressの更新設定はデフォルトでは以下のようになっています。
1. WordPressコアファイルの更新
マイナーバージョンのみ自動更新が有効
2. プラグインの更新
基本的に自動更新は無効だが制作者が設定を行なっている場合あり
3. テーマの更新
基本的に自動更新は無効だが制作者が設定を行なっている場合あり
4. 翻訳ファイルの更新
自動更新が有効
通常はデフォルトの状態で問題は起きないはずなのですが、今回、少々考えてみたいのは、上記 2.の『プラグインの更新』についてです。
プラグインの更新はデフォルトでは無効ですので、更新する際はサイト運営者が事前にデータベースのバックアップを取得したり、更新のテストを行ったりした後で更新を行います。
大きな問題になりかねないのは『プラグインの制作者が自動更新を有効に設定』している場合です。
私はあまりプラグインは使用しないのでほとんど目にしたことはないのですが、まれにプラグイン制作者が自動更新を有効にしています。信頼できる企業が作成したプラグインならマイナーバージョンを自動更新されても問題ないようにも思えますが、問題が起きているケースも見られるようです。
https://www.welcart.com/community/forums/search/自動更新
すぐにご対応いただいているようですが、Welcartの例のように致命的なエラーが発生するようなことはできるだけ避けたいというのが運営者側の本音ではないでしょうか。
プラグイン制作者の意図で自動更新が有効になっている場合、サイト運営者側でもこの自動更新を無効化することは可能です。
以下のコードをfunctions.phpなどに記述することで特定のプラグインの有効となっている自動更新を無効化することが可能です。
// Enables minor updates for WordPress: default is 'minor'
define('WP_AUTO_UPDATE_CORE', 'minor'); // ['minor'|true|false]
// Disabled auto update plugins
function auto_update_plugins_disabled($update, $item) {
$plugins = [
'usc-e-shop', // プラグインのスラッグを指定して自動更新を無効化
];
if (in_array($item->slug, $plugins)) {
$update = false;
}
return $update;
}
add_filter('auto_update_plugin', 'auto_update_plugins_disabled', 10, 2);
2行目はデフォルトの設定ですので記述はなくても問題ありません。
'minor'でコアファイルのマイナーバージョンの自動更新が有効となります。
trueを設定した場合はメジャー・マイナーバージョンともに自動更新が有効となります。
falseを設定した場合はメジャー・マイナーバージョンともに自動更新が無効となります。
7行目でプラグインWelcartのスラッグ 'usc-e-shop' を指定して自動更新を無効化します。
配列、$pluginsに他のプラグインのスラッグを設定することで該当プラグインの自動更新を無効化できます。
このhookの設定は下記のWordPress公式のドキュメントにも例が出ていますので参考にしてください。
参考 自動バックグラウンド更新の設定
たまたま見つけたのですが、下記のYouTube動画の 5:10〜6:55 あたりの判断基準についてのご説明はとてもわかりやすく私も同意です。