自動更新の停止方法と更新通知の消し方

自動更新の停止方法と更新通知の消し方

いきなり結論を書くと自動更新に関しては、デフォルト設定が一番良く、更新通知は管理者以外には表示されないようにする。

バージョン表記の意味について

WordPressのバージョン表記は5.2.1のように、3つの数字で表されます。
初めの2つの数字5.2の部分がメージャーバージョンの表記で、最後の.1がマイナーバージョン表記となります。

マイナーアップデートは、セキュリティ対策や細かい不具合の修正が行われるため、特別な理由がない限りアップデートを行いましょう。
初期設定ではマイナーアップデートが自動で行われます。

メジャーアップデート時には、機能の追加や廃止/仕様変更による関数の統廃合が行われることがあるため、利用テーマやプラグインに影響が出る可能性があります。
メジャーアップデートリリース後も暫くは、前バージョンのマイナーアップデートが継続して行われるため、テスト環境で新バージョンの検証をしっかり行ってから公開されているサイトのメジャーアップデートを行ないましょう。

自動更新を止める方法

これから出てくるコード内の、__return_true__return_falseを入れ替えることで有効と無効を逆にできます。

コアファイル

マイナーアップデート

デフォルトで有効になっているマイナーアップデートの自動更新を止めたい場合は、functions.phpに下記のコードを追記してください。

add_filter( 'allow_minor_auto_core_updates', '__return_false' );

メジャーアップデート

メジャーアップデートを有効にするには、functions.phpに下記のコードを追記してください。

add_filter( 'allow_major_auto_core_updates', '__return_true' );

プラグインとテーマ

プラグインとテーマの自動更新はデフォルトで無効化されているため、自動更新を有効化したい場合にのみ、下記のコードをfunctions.phpに追記してください。
自動更新したくない場合は、何も書かないで良いです。

/* プラグインの更新 */
add_filter( 'auto_update_plugin', '__return_true' );
/* テーマの更新 */
add_filter( 'auto_update_theme', '__return_true' );

翻訳ファイル

翻訳ファイルは、デフォルトで有効になっています。
翻訳ファイルの自動更新を無効化するには下記のコードをfunctions.phpに追記してください。

add_filter( 'auto_update_translation', '__return_false' );

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

この1行をfunctions.phpに追記することで、全ての更新を無効化できます。

add_filter( 'automatic_updater_disabled', '__return_true' );

wp-config.phpに下記のコードを追記することでも、コアファイルを含むすべての自動更新を完全に無効化できます。

define( 'AUTOMATIC_UPDATER_DISABLED', true );

更新通知メール

add_filter( 'auto_core_update_send_email', '__return_false' );

便利なプラグイン

これらの設定を、Advanced Automatic Updatesプラグインで簡単に設定できます。

Advanced Automatic Updates
プラグインの日本語化された設定画面

更新通知を消す方法

ワードプレスコアファイルの更新通知
更新通知

最後に、編集者などの管理者権限のないユーザーが手動更新を行えないように、更新通知を非表示にしておいた方が良いでしょう。
そのためには、wp-config.phpに下記のコードを追記

/* ----------------------------------------------------------------------------
管理者以外の更新通知を消す
---------------------------------------------------------------------------- */
function update_notices_admin_only() {
	if ( ! current_user_can( 'administrator' ) ) {
		remove_action( 'admin_notices', 'update_nag', 3 );
	}
}
add_action( 'admin_init', 'update_notices_admin_only' );

オススメしませんが、管理者も含めて消したい場合・・・

function update_notices_hidden() {
	remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action( 'admin_init', 'update_notices_hidden' );

まとめ

テスト環境などではメジャーアップデート/プラグイン/テーマ/翻訳ファイル全て有効にしておくと手間がかかりませんが、通常の公開サイトの場合はデフォルト設定がベストですね!
更新通知に関しては管理者以外非表示にしちゃいましょう。

自動更新の制御に関する情報はこちらで確認してください。
https://wpdocs.osdn.jp/自動バックグラウンド更新の設定