MENU

複数のWordPressサイトを管理していると、アップデートを手動で行うのがかなり面倒になってきますよね。

逆に、絶対に不具合を発生させたくないサイトの場合は一切自動アップデートを行わないようにしたい、なんてことも。

今回は、WordPressでバージョンアップやプラグインのアップデートなどを自動更新するかどうかの設定をカスタマイズする方法と、それに付随したあれこれをメモしていきます。

目次

デフォルトでどうなっているのか

まず、WordPressの機能として自動更新が可能なものは以下の6つ。

  • コアファイル(開発版)
  • バージョンアップデート(マイナー)
  • バージョンアップデート(メジャー)
  • 翻訳ファイル
  • プラグイン
  • テーマ

バージョンアップデートの「マイナー」や「メジャー」について。
例えば「4.8.2」→「4.8.3」はマイナーアップデート、「4.8」→「4.9」はメジャーアップデートです。

この中で、デフォルトで自動更新がonになっているものは

  • バージョンアップデート(マイナー)
  • 翻訳ファイル

以上の2つのみ。

自動更新のオン・オフ切り替え

専用のフィルタが用意されているので、それらをfunction.phpに記述するだけです。

それぞれの設定で対象になる関数

auto_update_translation        //翻訳ファイル
auto_update_plugin             //プラグイン
auto_update_theme              //テーマ
allow_dev_auto_core_updates    //コアファイル(開発版)
allow_minor_auto_core_updates  //マイナーアップデート
allow_major_auto_core_updates  //メジャーアップデート

これらに対し、add_filter__return_trueまたは__return_falseを指定する

自動更新を有効化する

//プラグインの自動更新を有効化
add_filter( 'auto_update_plugin', '__return_true' );
//テーマの自動更新を有効化
add_filter( 'auto_update_theme', '__return_true' );
//開発版の自動更新を有効化
add_filter( 'allow_dev_auto_core_updates', '__return_true' );
//メジャーアップグレードの自動更新を有効化
add_filter( 'allow_major_auto_core_updates', '__return_true' );

自動更新を無効化する

//翻訳ファイルの自動更新を無効化
add_filter( 'auto_update_translation', '__return_false' );
//マイナーアップグレードの自動更新を無効化
add_filter( 'allow_minor_auto_core_updates', '__return_false' );

自動更新そのものを停止する

自動更新機能そのものを停止させることもできます。

以下のコードをwp-config.phpのファイルに追記するだけです。

define('AUTOMATIC_UPDATER_DISABLED', true);

自動更新時に配信されるメールの停止

バージョンアップデートの自動更新時、メールが配信されるかと思います。

こちらの停止方法も合わせてメモしておきます。

function.phpに以下を記述

add_filter( 'auto_core_update_send_email', '__return_false' );

アップデート時にFTP情報を聞かれて自動更新ができない場合

VPSなどでWordPressを使用していて細かなパーミッションやファイル所有者の設定がうまくいっていない場合、バージョンやプラグインのアップデート時にいちいちFTP情報を入力しなければいけない場合があります。

そんな場合は、FTP情報の入力を省く設定が必要です。

サーバーをいじれるのであれば、chownchmodコマンドなどでファイル所有者やパーミッションを調整します。(細かい話はググってください。)

ここでは、wp_config.phpの設定で解決する方法をメモしておきます。FTP情報を定義し、記憶させておくだけです。

wp_config.phpに以下を記述

define( 'FTP_HOST', 'FTPホストドメイン' );
define( 'FTP_USER', 'ユーザー名' );
define( 'FTP_PASS', 'パスワード' );
define( 'FTP_SSL', false );

SSL接続できる場合はFTP_SSLをtrueにします。

- Thank you for reading this to the end. -
TOPへ Top