概要説明
カスタマイズしたサイトで、自動更新のあとに表示が崩れるのを防ぐために、WordPress 本体・プラグイン・テーマの自動更新を止める設定。更新のお知らせまで消す前のやり方の危なさ、wp-config.php と functions.php の書き方、作業環境で確かめた結果つき。
~ 目次 ~
コード:自動更新を止める(更新のお知らせは残す)
カスタマイズしたサイトでは、WordPress やプラグインが知らないうちに自動で更新されて、表示が崩れることがあります。それを防ぐために、自動更新を止めます。
いちばん簡単なのは、wp-config.php に 1 行書く方法です。
// WordPress 本体・プラグイン・テーマ・翻訳の自動更新を、すべて止める define( 'AUTOMATIC_UPDATER_DISABLED', true );
種類ごとに決めたいときは、functions.php に書きます。
/** * 自動更新を止める(更新のお知らせは残すので、管理画面の「更新」で手で更新できる) */ add_filter( 'auto_update_core', '__return_false' ); add_filter( 'auto_update_plugin', '__return_false' ); add_filter( 'auto_update_theme', '__return_false' ); add_filter( 'auto_update_translation', '__return_false' );
| 書き方 | 止まるもの |
|---|---|
| AUTOMATIC_UPDATER_DISABLED | 本体・プラグイン・テーマ・翻訳の自動更新をまとめて止める |
| auto_update_core | WordPress 本体の自動更新 |
| auto_update_plugin・auto_update_theme | プラグイン・テーマの自動更新 |
| auto_update_translation | 翻訳ファイルの自動更新 |
どちらの書き方でも、「新しいバージョンがあります」のお知らせは残ります。管理画面の「ダッシュボード → 更新」から、自分の都合のよいときに手で更新できます。
前はこの記事で、更新の情報そのものを消す書き方を紹介していました。これだと新しいバージョンが出ても管理画面に何も出ず、セキュリティの更新に気づけません。今は、自動更新だけを止める書き方にしています。
// 前のやり方(おすすめしない):更新のお知らせまで消してしまう add_filter( 'pre_site_transient_update_core', '__return_zero' ); add_filter( 'pre_site_transient_update_plugins', '__return_null' ); add_filter( 'pre_site_transient_update_themes', '__return_null' );
セキュリティの小さな更新だけは自動にする
本体の小さな更新(7.1.2 → 7.1.3 など)は、セキュリティの直しが中心で、表示が崩れることはあまりありません。これだけ自動にしたいときは、AUTOMATIC_UPDATER_DISABLED は書かずに、次の 1 行と、上の functions.php のうちプラグイン・テーマ・翻訳の 3 行を使います。
// セキュリティの小さな更新(7.1.2 → 7.1.3 など)だけは、本体を自動で更新する define( 'WP_AUTO_UPDATE_CORE', 'minor' );
確かめた結果
このサイトの作業環境(WordPress 7.1)で、前のやり方と今のやり方を比べました。
| 試したこと | 結果 |
|---|---|
| 前のやり方(更新の情報を消す) | プラグインの更新の情報が読めなくなった(更新があっても管理画面に出ない) |
| 自動更新を止める設定(automatic_updater_disabled) | 自動更新は止まり、更新の情報は残った |
止めたら、手で更新する
自動更新を止めたら、そのぶん手で更新することになります。
- 管理画面の「ダッシュボード → 更新」を、週に 1 回くらい見る
- 更新があれば、まず作業環境(本番の複製)で更新して、表示や動きを確かめる
- 問題がなければ、本番のバックアップを取ってから、本番を更新する
手間は増えますが、更新のあとに表示が崩れて気づかない、ということを防げます。
プラグインで止める(Easy Updates Manager)
コードを書かずに、画面で決めたいときは、プラグイン「Easy Updates Manager」が使えます。本体・プラグイン・テーマの自動更新を、画面で切り替えられます。
Easy Updates Manager は、自動更新の設定をとても遅い順番で上書きします。作業環境で試したところ、functions.php にふつうの順番で書いた automatic_updater_disabled より、プラグインの設定が勝ちました。プラグインを使うときは、プラグインの画面で決めてください。



