Update WordPress?

2025.03.11

クライアントにWordPressを勝手に更新されて不具合が出ないようにという意図からなのか、更新してプラグインやテーマに不具合がでた場合にすぐに改修ができないときのためなのか、ときどきWordPressの更新情報を表示させないようにしているサイトの改修のお話を頂きます。
サイトによって様々な事情を抱えての対処だとは思うのですが、当然、特別な事情がない限り更新は行うべきです。むしろ更新しないサイトは『脆弱性を抱えていることを知りつつ』、そのままサイト運営を行なっているということなので、コンプライアンス的にも問題ありです。
『脆弱性を抱えていることを知りつつ』というのは実際には知らなかったとしても、運営者サイドとしては知っていなければならないことですので同義だと考えられます。

以下がよく見かける WordPressの更新を行わないようにする functions.phpの記述ですが...

functions.php #1

functions.php #2

/**
 * WordPress本体・プラグイン・テーマの更新通知を無効化
 */
add_filter('pre_site_transient_update_core', '__return_zero');
remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;"));
remove_action('load-update-core.php', 'wp_update_plugins');
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;"));
remove_action('load-update-core.php', 'wp_update_themes');
/**
 * WordPress本体・プラグイン・テーマの更新通知を無効化
 */
add_filter('pre_site_transient_update_core', '__return_zero');
remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');
remove_action('load-update-core.php', 'wp_update_plugins');
remove_action('load-update-core.php', 'wp_update_themes');

さすがにfunctions.php #1のような記述をそのまま使用している人はいないと思います。

※PHPのcreate_function()はPHP7.2.0で非推奨に、8.0.0で削除されています。

本番環境のサーバーでは一般的にPHPのエラーは表示しないような設定を行われていることが多いため、気づきにくいですがfunctions.php #2の記述の4行目の記述はWordPressの管理画面内、「更新」のページを表示するWarningのエラーが表示されます。このエラーは致命的なエラーではないですが、そもそも更新情報を表示させない設定はいかがなものかと思います。

しつこいようですが、特別な事情がない限り更新は行うべきですので、上記のような記述はやめましょう

WordPressの更新、あるいはテーマやプラグインの更新時は事前にバックアップを取得して、テスト環境などで更新テストを行ってから本サーバーで更新を行うといった作業工程が必要です。サイトの保守を外注にしている場合などでは、確かに工数や費用が掛かる場合もあるかと思いますが、サイト運営上必要なことだという認識がもう少し高まればと思います。

参考 https://www.php.net/manual/ja/function.create-function.php