WordPressの技術メモ
まとめ
- 【ステータス】解決(*1)
- 【現象】記事を編集しようとするとJetPackのエラーが一瞬表示される(が何事もなかったかのように編集画面には移る)
- 【処置】Jetpackプラグインのアップデート
- 【原因】不明(未調査)
*1 ただし別の問題が発生した(ひとまずは解決している)。今回の処置との関係性は不明(未調査)。
環境
- サーバー
- WordPress 5.6 (Cocoon Child テーマ)
- Cocoonバージョン: 2.2.5.7
- Jetpack by WordPress.com 8.6.1
- クライアント
- macOS Sierra (10.12.6)
- Google Chrome バージョン: 87.0.4280.88(Official Build) (x86_64)
現象
公開中の記事を表示した状態で画面上部の「投稿を編集」をクリックすると以下のエラーメッセージが表示される。
Warning: Declaration of Jetpack_IXR_Client::query() should be compatible with IXR_Client::query(…$args) in /home/(xxx)/(xxxxxx)/public_html/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php on line 0
ただし表示されるのは一瞬(表示時間はマシンの性能に寄るようだ。1秒未満な場合もあれば3〜4秒かかることもある)であり、何事もなかったかのように記事編集画面へと移る。記事の編集も問題なく行える。
当現象はすべての記事で発生する。記事固有の問題ではない。
実行タイミングの問題(サーバーやクライアントの過負荷やトラフィック増大の影響等)でもないように思える。(長時間の検証はしてないものの)1時間の間に何度か試したが毎回必ず発生したからだ。
原因
不明(未調査)
処置
自分でコントロールしたいためプラグイン等の自動アップデートは切っている。Jetpackのプラグインはアップデートがあった(8.6.1 ⇒ 9.2.1)。原因不明のままではあるがひとまずアップデートしてみることにした。
UpdraftPlus Backup/Restoreでバックアップを取得しローカルに退避した後、Jetpackのプラグインをアップデートした。アップデートそのものは正常に終了した。
ところが問題が起きた。動作確認のためサイトのトップページを再表示したところ、以下のエラーが表示された。
Fatal error: Uncaught Error: Class ‘Automattic\Jetpack\Blocks’ not found in /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/extensions/blocks/donations/donations.php:24 Stack trace: #0 /home/(xxx)/(xxx)/public_html/wp-includes/class-wp-hook.php(287): Automattic\Jetpack\Extensions\Donations\register_block(”) #1 /home/(xxx)/(xxx)/public_html/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #2 /home/(xxx)/(xxx)/public_html/wp-includes/plugin.php(484): WP_Hook->do_action(Array) #3 /home/(xxx)/(xxx)/public_html/wp-settings.php(557): do_action(‘init’) #4 /home/(xxx)/(xxx)/public_html/wp-config.php(93): require_once(‘/home/(xxx)…’) #5 /home/(xxx)/(xxx)/public_html/wp-load.php(37): require_once(‘/home/(xxx)…’) #6 /home/(xxx)/(xxx)/public_html/wp-blog-header.php(13): require_once(‘/home/(xxx)…’) #7 /home/(xxx)/(xxx). in /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/extensions/blocks/donations/donations.php on line 24
このサイトで重大なエラーが発生しました。
WordPress でのデバッグをさらに詳しく見る。
▼ 表示されたエラー画面
同時刻、メールが飛んできた。
表示されたエラーに関するものだった。
[(xxx)] サイトで技術的な問題が発生しています
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がプラグイン Jetpack by WordPress.com でエラーを捉えました。
まずはじめに、ご自分のサイト (https://(xxx)/) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://(xxx)/wp-admin/admin-ajax.php) を開き、同様に問題がないか確認してください。
この問題をさらに調査するにはサーバーホストに連絡してみてください。
もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
・https://(xxx)/wp-login.php?action=enter_recovery_mode&rm_token=(xxx)&rm_key=(xxx)
サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。
この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション5.6
現在のテーマ: Cocoon Child (バージョン 0.0.4)
現在のプラグイン: Jetpack by WordPress.com (バージョン 9.2.1)
PHP バージョン7.3.16
エラー詳細
===============
エラータイプ E_ERROR が /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/class.jetpack-admin.php ファイルの 58 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined method Jetpack_Plan::get_products() in /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/class.jetpack-admin.php:58
Stack trace:
0 /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/class.jetpack-admin.php(20): Jetpack_Admin->__construct()
1 /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/class.jetpack-admin.php(333): Jetpack_Admin::init()
2 /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/load-jetpack.php(67): require_once(‘/home/(xxx)…’)
3 /home/(xxx)/(xxx)/public_html/wp-content/plugins/jetpack/jetpack.php(147): require_once(‘/home/(xxx)…’)
4 /home/(xxx)/(xxx)/public_html/wp-settings.php(388): include_once(‘/home/(xxx)…’)
5 /home/(xxx)/(xxx)/public_html/wp-config.php(93): require_once(‘/home/(xxx)…’)
6 /home/(xxx)/(xxx)/public_html/wp-load.php(37): require_once(‘/
▼ 飛んできたメール
深刻な問題が起きてしまったのかと顔面蒼白になるが、結論としては問題なかった(ように見える)
再度トップページにアクセスしたところ、問題なく表示されたからだ。
これ以降エラー画面は表示されていない。また当初の問題であった「記事編集時に一瞬メッセージが表示される」件も起こらなくなった(確証はないが、プラグインのアップデートで解決したのかもしれない)
当初の問題もプラグインのアップデート時にいちどだけ起きた問題も、原因は調査していないため、不安は残るが、ひとまず解決したので良しとする。
(なにかあったら振り替えれるようここに記事として残す)
コメント