WordPress

WordPressの更新ページでWarning: Attempt to read property "current" on false inエラー

WordPressの更新ページでWarningエラーがでる

Warning: Attempt to read property "current" on false in wp-admin/update-core.php on line 41
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 43
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 45
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 51
Warning: Attempt to read property "current" on false in wp-admin/update-core.php on line 67
Warning: Attempt to read property "response" on false in wp-admin/update-core.php on line 77
Warning: Attempt to read property "current" on false in wp-admin/update-core.php on line 163
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 164
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 173
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 182
Warning: Attempt to read property "locale" on false in wp-admin/update-core.php on line 182

WordPressの更新ページを見たらまあつらつらとエラーが出ておりましたわ。

アップデートを要求されているのかと思いWordPressを最新にアップデートしても直らない。update-core.phpという文字に引っ張られすぎました。

同様のトラブルのフォーラムがある

https://wordpress.org/support/topic/warning-messages-in-dashboard-updates-section-after-downgrade-from-wp-6

エラーメッセージでググったところ、エラーが同じフォーラムが出てきました。どうやらプラグインが影響していたようです。
そしたら私の今回の問題もプラグインかテーマが原因だな。とひとつずつ探っていきます。
プラグインはすべて無効化し、テーマはWordPressの公式のテーマに変えてみる。

原因はテーマだった

原因はPHPのバージョンをあげたのに、制作した子テーマの中に推奨されないコードがあったからでした。本体の方に気を取られ、確認順番を間違えたな。もっとスムーズに解決できたかも、と反省。

エラーがでていた箇所

WordPressの更新をテーマから非表示にしていたんですけど、ここがPHP8になったらエラーになっていました。

add_filter( 'pre_site_transient_update_core', function($a){return null;});
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', function($a){return null;});
remove_action( 'load-update-core.php', 'wp_update_themes' );
add_filter( 'pre_site_transient_update_themes', function($a){return null;});

PHP8対応版コード

// WordPressコアのアップデート通知を非表示
add_filter( 'pre_site_transient_update_core', function($value) {
    return (object) [
        'updates' => [],
        'version_checked' => $GLOBALS['wp_version'],
    ];
}, 10, 1);

// プラグインのアップデート通知を非表示
add_filter( 'pre_site_transient_update_plugins', function($value) {
    return (object) [
        'updates' => [],
    ];
}, 10, 1);

// テーマのアップデート通知を非表示
add_filter( 'pre_site_transient_update_themes', function($value) {
    return (object) [
        'updates' => [],
    ];
}, 10, 1);

// アップデートチェックのアクションを安全に無効化
add_action( 'init', function() {
    remove_action( 'wp_version_check', 'wp_version_check' );
    remove_action( 'wp_update_plugins', 'wp_update_plugins' );
    remove_action( 'wp_update_themes', 'wp_update_themes' );
}, 999 );

これでエラーは出なくなりました。

今回は更新でしたが、原因は使用しているPHPのバージョンに対応していないコードが原因のエラーなので、おそらく今後プラグインやテーマでも同様のエラーがでるかもしれないな、という覚書。

  • この記事を書いた人

ゆず

■忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
■サイト運営費のためGoogleAdsenseをいれています。
gifteeを贈る / コーヒーをおごる / mail

1

outlookを最小化すると勝手に終了してしまう outlookを最小化すると勝手に終了してしまうと相談されたけど実はそれ勝手に閉じてるわけじゃなくて、おそらく「最小化時にアイコン化する設定」になって ...

2

前提 自分用ブックマークサイトとして使用しているてがろぐに、いいねボタンをつけようという狙いです。なので、てがろぐのセットアップは終了し稼働しているものとします。 配布ページのマニュアルを参考に進めま ...

3

感想をもっと手軽に、お気軽に。 https://labo.01kawa.com/kansou 同人イベントやSNSで大好きな作家さんの作品に感動したとき、「感想送りたいな!」って思うけど、言葉に詰まっ ...

-WordPress
-,