WordPressのテーマ・プラグインの自動更新は有効ですか

王文暁

はじめに

前回はコアの話「WordPressサイトの重要な安全機能「自動更新」は有効ですか」をしましたが、今回はテーマとプラグインのことを書きます。

WordPressサイトのセキュリティと機能向上のために、「テーマ」と「プラグイン」の自動更新は重要です。多くのセキュリティ脆弱性がプラグインやテーマの古いバージョンに存在し、更新をしないとサイトが攻撃されるリスクが高まります。そのため、テーマやプラグインの自動更新を適切に管理することが、サイトの安全性を保つためのです。本文章では、テーマとプラグインの自動更新が無効になる設定の優先度とその対処方法を紹介します。

なぜテーマとプラグインの自動更新が必須なのか

  1. セキュリティリスクの軽減
    Wordfenceの脆弱性情報RSSによると、週平均5件以上の脆弱性が新たに登録されています。特に人気プラグインは攻撃者の標的になりやすい特性があります。
  2. 機能の向上と新機能の追加
    最新バージョンにはバグ修正や新機能が含まれているため、サイトのパフォーマンス向上につながります。
  3. 運用効率化
    複数サイト管理時でも、一括で更新状態を管理可能です
  4. 互換性維持
    WordPressコア更新時に必要なテーマ/プラグインのバージョンアップを自動化します

WordPressでは、テーマとプラグインの自動更新を制御するさまざまな設定が提供されています。

テーマ・プラグインの自動更新を制御する設定

優先度1:根本的な無効化要因

優先度1の設定はコアと同じです

  1. システムクーロン(WP-Cron)の停止状態
    • 影響範囲:テーマ・プラグインの全自動更新が停止
    • 説明:これが設定されている場合、WordPressのスケジュール実行機能(Cron)が停止し、自動更新も機能しなくなります。
    • 確認方法:
//テーマやプラグインのfunctions.phpに以下のフィルターがないか確認
define('DISABLE_WP_CRON', true);
  1. 自動更新の全体無効化設定
    • 影響範囲:テーマ・プラグインの全自動更新が無効化
    • 説明:これが設定されている場合、テーマとプラグインの自動更新は全部機能しなくなります。
    • 確認方法:
//wp-config.phpの下の設定がないか確認
define('AUTOMATIC_UPDATER_DISABLED', true);

または、テーマやプラグインのソースコードに以下のフィルターがないか確認

add_filter('automatic_updater_disabled', '__return_true');

優先度2:テーマ・プラグインの個別設定

1.テーマの自動更新ブロック

1.auto_update_theme

  • 影響範囲:全体テーマ
  • 説明:これが設定されている場合、全てのテーマの自動更新は機能しなくなります。
  • 確認方法:
//テーマやプラグインのソースコードに以下のフィルターがないか確認
add_filter('auto_update_theme', '__return_false');

別のプラグインによってauto_update_themeのフィルターが設定されている場合、UIの表示が変わります。
KUSANAGIプラグインで有効(あるいは無効)にしていると次にようになり、変更できなくなっています。
変更できない場合は、フィルターがどこかで設定されているためです。

2.themes_auto_update_enabled

  • 影響範囲:全体テーマ
  • 説明:これが設定されている場合、全てのテーマの自動更新は機能しなくなります。
  • 確認方法:
//テーマやプラグインのソースコードに以下のフィルターがないか確認
add_filter('themes_auto_update_enabled', '__return_false');

別のプラグインによってthemes_auto_update_enabledのフィルターが設定されている場合、UIの表示が変わります。themes_auto_update_enabledをfalseにする時、自動更新無効というボタンが消えます

ちなみにauto_update_themeは手動設定とthemes_auto_update_enabledに上書き表現あります

プラグインの自動更新ブロック

1.auto_update_plugin

  • 影響範囲:全体プラグイン
  • 説明:これが設定されている場合、全てのプラグインの自動更新は機能しなくなります。
  • 確認方法:
//テーマやプラグインのソースコードに以下のフィルターがないか確認
add_filter('auto_update_plugin', '__return_false');

別のプラグインによってauto_update_pluginのフィルターが設定されている場合、UIの表示が変わります。
KUSANAGIプラグインで有効(あるいは無効)にしていると次にようになり、変更できなくなっています。
変更できない場合は、フィルターがどこかで設定されているためです

2.plugins_auto_update_enabled

  • 影響範囲:全体プラグイン
  • 説明:これが設定されている場合、全てのプラグインの自動更新は機能しなくなります。
  • 確認方法:
//テーマやプラグインのソースコードに以下のフィルターがないか確認
add_filter('plugins_auto_update_enabled', '__return_false');

別のプラグインによってplugins_auto_update_enabledのフィルターが設定されている場合、UIの表示が変わります。plugins_auto_update_enabledをfalseにする時、自動更新無効というボタンが消えます。

ちなみにauto_update_pluginは手動設定とplugins_auto_update_enabledに上書き表現あります

優先度3:データベースの設定

WordPressのデータベースには、テーマ・プラグイン自動更新を制御するオプションが保存されています。

  • 影響範囲:個別プラグインや個別テーマ
  • 説明:データベースで自動更新機能設定されている場合、無効を設定したプラグインや無効を設定したテーマの自動更新は機能しなくなります。
  • 確認方法:

1.auto_update_plugins

//下のコマンドを実行して、wp_options テーブルの設定がわかります
[root@almalinux9 DocumentRoot]# wp option get auto_update_plugins
array (
  0 => 'akismet/akismet.php',
)

表示したのプラグインは自動更新機能有効しているプラグインです。設定の場所は下のスクリーンショットで表示します

2.auto_update_themes

  • テーマの自動更新を管理する設定

確認コマンド(WP-CLI使用):

//下のコマンドを実行して、wp_options テーブルの設定がわかります
[root@almalinux9 DocumentRoot]# wp option get auto_update_themes
array (
  0 => 'twentytwentyfour',
)

表示したのテーマは自動更新機能有効しているテーマです。設定の場所は下のスクリーンショットで表示します

まとめ

WordPressの自動更新は設定して終わりではありません。定期的な確認が、テーマ・プラグインの脆弱性からサイトを守る鍵です。本文章で紹介したチェックポイントを元に、自動更新が正しく機能しているかを確認し、安全なWordPress運用を維持してください。

次回は、このロジックを応用してKUSANAGIプラグインでどう制御しているのかをお伝えします!

<< WordPress 6.8新機能のSpeculative Loadingについて徹底解説!

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解