2026年5月20日
2026年5月20日
WordPressプラグインの自動更新を設定する方法(管理画面・フィルター・WP-CLI)
WordPress 5.5 以降は、プラグインごとに自動更新の有効・無効を管理画面から切り替えられます。セキュリティの修正を早く適用したいプラグインは自動更新にし、更新で動作が変わりやすいプラグインは手動で確かめてから更新する、といった使い分けができます。
この記事では、管理画面、PHP のフィルター(フック)、WP-CLI の3つの方法と、自動更新の仕組みと注意点を説明します。フィルターと定数の内容は、2026年11月時点で developer.wordpress.org のリファレンスで確認したものです。
管理画面で設定する
- 「プラグイン → インストール済みプラグイン」を開く
- 一覧の「自動更新」の列で、対象のプラグインの「自動更新を有効化」を押す
- 有効になると、同じ場所が「自動更新を無効化」に変わり、次回の自動更新の予定が表示される
まとめて設定する場合は、一覧の左のチェックボックスで複数のプラグインを選び、「一括操作」から「自動更新を有効化」(または「自動更新を無効化」)を選んで「適用」を押します。
自動更新を使えるのは、WordPress.org で配布されているプラグインと、WordPress の更新の仕組みに対応した更新機能を持つ有料プラグインなどです。それ以外のプラグイン(自作のプラグインなど)は自動更新の対象になりません。テーマも「外観 → テーマ」でテーマごとに同じ設定ができます。
フィルターで自動更新を制御する
サイトごとの方針をコードで固定したい場合は、auto_update_plugin フィルターを使います。コードは子テーマの functions.php か、独自のプラグイン(mu-plugins に置くとテーマを変えても有効)に書きます。
このフィルターが返す値は、管理画面での設定よりも優先されます。true を返すと自動更新し、false を返すと自動更新しません。何も変えない場合は、受け取った $update をそのまま返します。
すべてのプラグインを自動更新する、またはしない
<?php
// すべてのプラグインを自動更新する
add_filter( 'auto_update_plugin', '__return_true' );
// すべてのプラグインを自動更新しない(上の行とどちらか一方だけを書く)
// add_filter( 'auto_update_plugin', '__return_false' );
特定のプラグインだけを自動更新する、または除外する
2つ目の引数 $item は更新の情報を持つオブジェクトで、$item->slug にプラグインのスラッグ(WordPress.org の URL に使われる名前)が入ります。
<?php
// 指定したプラグインは常に自動更新する。それ以外は管理画面の設定に従う
add_filter( 'auto_update_plugin', function ( $update, $item ) {
$always = array( 'akismet', 'wordfence' );
if ( isset( $item->slug ) && in_array( $item->slug, $always, true ) ) {
return true;
}
return $update;
}, 10, 2 );
// 指定したプラグインは自動更新しない。それ以外は管理画面の設定に従う
add_filter( 'auto_update_plugin', function ( $update, $item ) {
$excluded = array( 'woocommerce', 'contact-form-7' );
if ( isset( $item->slug ) && in_array( $item->slug, $excluded, true ) ) {
return false;
}
return $update;
}, 10, 2 );
指定したもの以外に false を返すコードにすると、管理画面で有効にしたプラグインも自動更新されなくなります。上の例では、指定外のプラグインは $update を返して管理画面の設定を生かしています。
管理画面の自動更新の操作を消す
プラグインの自動更新を使わない方針で、管理画面の「自動更新」の列も表示したくない場合は、plugins_auto_update_enabled フィルターを使います。
<?php
add_filter( 'plugins_auto_update_enabled', '__return_false' );
wp-config.php の定数の意味
wp-config.php の定数は、プラグインだけでなく自動更新の全体や本体の更新に効きます。用途を取り違えないようにしてください。
| 定数 | 効果 |
|---|---|
define( 'AUTOMATIC_UPDATER_DISABLED', true ); |
本体・プラグイン・テーマ・翻訳を含む、すべての自動更新を止める |
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); |
WordPress 本体だけの設定。'minor' はマイナー更新(セキュリティ・保守)のみ、true はメジャー更新も含める、false は本体の自動更新をしない |
WP_AUTO_UPDATE_CORE は本体の自動更新を決める定数で、プラグインやテーマの自動更新には関係しません。プラグインの自動更新だけを止めたい場合は、前の節のフィルターを使います。
AUTOMATIC_UPDATER_DISABLED を true にすると、本体のセキュリティ更新も自動では入らなくなります。手動で更新する体制がある場合に限って使ってください。
WP-CLI で設定する
WP-CLI の wp plugin auto-updates で、管理画面と同じ設定をコマンドから変えられます。
# 特定のプラグインの自動更新を有効化
wp plugin auto-updates enable contact-form-7
# すべてのプラグインの自動更新を有効化
wp plugin auto-updates enable --all
# 特定のプラグインの自動更新を無効化
wp plugin auto-updates disable woocommerce
# すべてのプラグインの状態を表示
wp plugin auto-updates status --all
# 自動更新が有効なプラグインの名前だけを表示
wp plugin auto-updates status --all --enabled-only --field=name
wp plugin list の既定の表示にも auto_update の列(on または off)が含まれます。
wp plugin list --fields=name,version,update_version,auto_update
通知メールを変える
自動更新が行われると、管理者のメールアドレスに結果が送られます。メールを止める、または送信先を変えるにはフィルターを使います。
<?php
// プラグインの自動更新の通知メールを送らない
add_filter( 'auto_plugin_update_send_email', '__return_false' );
// プラグインとテーマの自動更新の通知メールの送信先を変える
add_filter( 'auto_plugin_theme_update_email', function ( $email, $type, $successful_updates, $failed_updates ) {
$email['to'] = 'dev@example.com';
return $email;
}, 10, 4 );
auto_plugin_theme_update_email の $email は wp_mail() に渡される配列で、to(送信先)、subject(件名)、body(本文)、headers を持ちます。$type には success(成功)、fail(失敗)、mixed(両方)のいずれかが入ります。通知を止めると更新の失敗にも気づきにくくなるので、送信先を変える方法をおすすめします。
自動更新が動く仕組みと注意点
- WP-Cron で動く: 自動更新は WordPress の予定実行(WP-Cron)で、1日2回の更新確認に合わせて行われます。WP-Cron はサイトへのアクセスを合図に動くので、アクセスの少ないサイトや、
DISABLE_WP_CRONをtrueにしてサーバーの cron を設定していないサイトでは、更新が遅れたり行われなかったりします。 - 失敗したときの巻き戻し: WordPress 6.6 以降は、プラグインの自動更新のあとに PHP の致命的エラーが出ていないかを確認し、エラーが出た場合は更新前のバージョンに戻して管理者にメールで知らせます。致命的エラーにならない不具合(表示の崩れや機能の変化)は戻りません。
- 自動更新に向かないプラグイン: WooCommerce のような EC や会員管理のプラグインは、更新でデータベースの変更や動作の変更が起きることがあります。ステージング環境で試してから手動で更新する運用が安全です。
- 自動更新に向くプラグイン: セキュリティ系のプラグインや、脆弱性の修正が出たときに早く適用したいプラグインは、自動更新にしておくと修正の適用が遅れにくくなります。
- バックアップ: 自動更新でも問題が起きることはあります。毎日のバックアップを取り、戻す手順を確かめておいてください。