本記事ではWordPressの更新と通知メールを停止できるカスタマイズを紹介いたします。
自動更新を止める場合は、手動で更新・バックアップ・動作確認を行う担当とタイミングを決めてください。通知メールだけを減らしたい場合は、更新そのものを停止する必要はありません。
WordPressの本体やテーマの自動アップデートを停止する方法
WordPressのテーマのアップデートを停止する方法は簡単です。
必要なコードだけを、有効な子テーマのfunctions.phpまたはCode Snippetsのどちらか一方へ追加します。変更前にバックアップし、親テーマを直接編集しないでください。
このページのコードは自動更新の可否や通知を変更します。管理画面からの手動更新を禁止するコードではありません。
WordPressのメジャーアップデートの自動更新を停止するコード
WordPressのメジャーアップデートを停止するコードです。
メジャーアップデートとは、例えば5.9.3から6.0.0にアップグレードする時が該当します。
add_filter( 'allow_major_auto_core_updates', '__return_false' );WordPressのマイナーアップデートの自動更新を停止するコード
WordPressのマイナーアップデートを停止するコードです。
マイナーアップデートとは、例えば6.8.1から6.8.2にアップグレードする時が該当します。
add_filter( 'allow_minor_auto_core_updates', '__return_false' );WordPressのテーマの自動更新を停止するコード
WordPressのテーマの自動更新を停止するコードです。
SWELLなどのテーマの自動更新を停止したい場合に有効です。
add_filter('auto_update_theme', '__return_false' );WordPressの本体・テーマ・プラグインの自動更新通知メールを停止する方法
おまけです。
以下は自動更新後の通知メールを制御します。更新の実行可否とは別です。成功通知だけを減らす例と、通知を一律に停止する例を区別してください。この節は通知メールだけを扱います。プラグインの自動更新そのものを止める例は掲載していません。
WordPressの自動更新の通知メールを停止するコード
WordPress本体の自動更新通知を一律に停止するコードです。失敗・重大エラーの通知も対象になるため、成功通知だけを減らす場合は次の例を使ってください。
add_filter( 'auto_core_update_send_email', '__return_false' );本体の更新成功メールだけを停止する場合
上のauto_core_update_send_emailを一律falseにする行と併用せず、こちらへ置き換えます。successだけをfalseにし、failとcriticalでは受け取った値を維持します。他のコードが通知を停止している場合に、強制的に送信へ戻すものではありません。
add_filter( 'auto_core_update_send_email', function ( $send, $type ) {
return 'success' === $type ? false : $send;
}, 10, 2 );テーマの自動更新の通知メールを停止するコード
テーマの自動更新の通知メールを停止するコードです。
add_filter( 'auto_theme_update_send_email', '__return_false' );プラグインの自動更新の通知メールを停止するコード
プラグインの自動更新の通知メールを停止するコードです。
add_filter( 'auto_plugin_update_send_email', '__return_false' );
まとめ
本記事ではWordPressのテーマの自動更新と通知メールを停止する方法を紹介いたしました。
上の例は選択肢です。一括で全部貼り付けず、停止したい対象のコードだけを選びます。テーマのauto_update_themeは特定のテーマ名だけでなく、テーマの自動更新全体に作用します。
冒頭に記載いたしましたが、自動更新を止める場合は、手動で更新・バックアップ・動作確認を行う担当とタイミングを決めてください。通知メールだけを減らしたい場合は、更新そのものを停止する必要はありません。
是非試してみてください。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/WAZA-codeにもまとめています。
元に戻す方法と確認範囲
追加したフィルターを削除するか、該当スニペットを無効化します。その後、管理画面の自動更新設定も確認してください。サーバー側の更新機能やほかのプラグインの設定は、このコードだけでは変更されません。マイナー更新には不具合・セキュリティ修正も含まれるため、停止中は手動更新を放置しない運用が必要です。
WordPress 7.1.2の隔離環境で、更新候補・結果を模擬し、実際のCore_Upgraderの更新可否判定とWP_Automatic_Updaterの通知処理を確認しました。
成功通知だけを止める例では成功時にwp_mailへ進まず、失敗・重大な失敗ではwp_mailへ進みます。
送信直前で捕捉しているため、実際の更新処理と外部メール配信は実行していません。
更新通知のどこまでが停止対象になるか
| 設定 | 確認した通知処理 | 停止しないもの |
|---|---|---|
| 本体の自動更新メールをfalseにする | success・fail・criticalはいずれもwp_mailへ進まない | 手動更新を促すmanual通知 |
| 成功通知だけを停止する | successのみ停止し、fail・criticalはwp_mailへ進む | 失敗通知とmanual通知 |
| テーマ・プラグインの自動更新メールを停止する | 模擬した更新成功結果の通知はwp_mailへ進まない | 他のプラグイン独自のメールやサーバーからの通知 |
本体の通知処理には、更新を試みず手動更新を促すmanualという分岐もあります。
この分岐はauto_core_update_send_emailを通らないため、本体の自動更新メールを止めるフィルターだけで、すべての更新関連メールを止められるとは限りません。
成功通知だけを減らしたい場合は、全通知をfalseにする例と同時に登録せず、成功時だけfalseを返す例を選びます。
失敗時の通知が不要な成功通知と一緒に止まっていないか、採用するコードを確認してください。
よくある質問:WordPressの本体やテーマの自動更新と通知メールを停止するとき
自動更新を止める前に、何を決めておきますか?
記事では、自動更新を止める場合は、手動で更新・バックアップ・動作確認を行う担当とタイミングを決めます。通知メールだけを減らしたい場合は、更新そのものを停止する必要はありません。
コードは、どこに追加しますか?
記事では、必要なコードだけを、有効な子テーマのfunctions.phpまたはCode Snippetsのどちらか一方へ追加します。変更前にバックアップし、親テーマを直接編集しません。
管理画面からの手動更新も、できなくなりますか?
なりません。記事では、このページのコードは自動更新の可否や通知を変更するもので、管理画面からの手動更新を禁止するコードではありません。
メジャーアップデートとマイナーアップデートは、何が違いますか?
記事では、メジャーアップデートは、例えば5.9.3から6.0.0にアップグレードする時、マイナーアップデートは、例えば6.8.1から6.8.2にアップグレードする時が該当します。それぞれ停止するコードが別にあります。
全部のコードを貼り付けてもよいですか?
貼り付けないでください。記事では、上の例は選択肢です。一括で全部貼り付けず、停止したい対象のコードだけを選びます。テーマのauto_update_themeは、特定のテーマ名だけでなく、テーマの自動更新全体に作用します。
通知メールだけを止めることはできますか?
できます。記事では、本体・テーマ・プラグインの自動更新後の通知メールを、それぞれ制御するコードを紹介しています。成功通知だけを止める例では、successだけをfalseにし、failとcriticalでは受け取った値を維持するため、失敗・重大な失敗のメールは送られます。他のコードが通知を停止している場合に、強制的に送信へ戻すものではありません。
自動更新を止めたままにしても、よいですか?
放置しないでください。記事では、マイナー更新には不具合・セキュリティ修正も含まれるため、停止中は手動更新を放置しない運用が必要です。
元に戻すには、どうしますか?
記事では、追加したフィルターを削除するか、該当スニペットを無効化します。その後、管理画面の自動更新設定も確認します。サーバー側の更新機能やほかのプラグインの設定は、このコードだけでは変更されません。なお、記事の確認はWordPress 7.1.2の隔離環境での模擬で、実際の更新処理と外部メール配信は実行していません。



