複数のWordPressサイトを管理していると、アップデートを手動で行うのがかなり面倒になってきますよね。
今回は、WordPressでバージョンアップやプラグインのアップデートなどを自動更新するかどうかの設定方法と、その時の自動メール配信を送信するかどうかの設定に関してメモしていきます。
WordPressで自動更新が可能なものと、デフォルト設定の確認
WordPressの自動更新機能が有効なものは以下の6つです。
- コアファイル(開発版)
- バージョンアップデート(マイナー)
- バージョンアップデート(メジャー)
- 翻訳ファイル
- プラグイン
- テーマ
*:バージョンアップデートの「マイナー」や「メジャー」について。
例えば「4.8.2」→「4.8.3」はマイナーアップデート、「4.8」→「4.9」はメジャーアップデートです。
この中で、デフォルトで自動更新が on になっているものは
- バージョンアップデート(マイナー)
- 翻訳ファイル
以上の2つのみ。
自動更新のオン・オフ切り替え方法
先ほど確認した6種の項目それぞれに 専用のフィルタが用意されているので、それらを functions.php
に記述するだけです。
それぞれのフィルタ名
コアファイル(開発版) | allow_dev_auto_core_updates |
---|---|
バージョンアップデート(マイナー) | allow_minor_auto_core_updates |
バージョンアップデート(メジャー) | allow_major_auto_core_updates |
翻訳ファイル | auto_update_translation |
プラグイン | auto_update_plugin |
テーマ | auto_update_theme |
これらのフィルターに対し、 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);
自動更新時に配信されるメールの停止
バージョンアップデートの自動更新時、メールが配信されるかと思います。
こちらの停止方法も合わせてメモしておきます。
functions.php
に以下を記述
add_filter( 'auto_core_update_send_email', '__return_false' );
アップデート時にFTP情報を聞かれて自動更新ができない場合
VPSなどでWordPressを使用していると、パーミッションやファイル所有者の設定がうまくいっておらず、バージョンやプラグインのアップデート時にいちいちFTP情報を入力しなければいけない場合があります。
サーバーをいじれるのであれば、chown
やchmod
コマンドなどでファイル所有者やパーミッションを調整します。(細かい話はググってください。)
それができない場合、もしくは解決できなかった場合は、FTP情報の入力を省く設定をWordPressで追記してしまいましょう。
wp_config.php
に以下を記述
define( 'FTP_HOST', 'FTPホストドメイン' );
define( 'FTP_USER', 'ユーザー名' );
define( 'FTP_PASS', 'パスワード' );
define( 'FTP_SSL', false );
内容としては、FTP情報をあらかじめ定義し、記憶させているだけです。
注意点:SSL接続できる場合はFTP_SSL
をtrueにします。