【WordPress技術メモ】記事を編集しようとするとJetPackのエラーが一瞬表示される(が何事もなかったかのように編集画面には移る)

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(‘/

▼ 飛んできたメール

 

深刻な問題が起きてしまったのかと顔面蒼白になるが、結論としては問題なかった(ように見える)

再度トップページにアクセスしたところ、問題なく表示されたからだ。

 

これ以降エラー画面は表示されていない。また当初の問題であった「記事編集時に一瞬メッセージが表示される」件も起こらなくなった(確証はないが、プラグインのアップデートで解決したのかもしれない)

 

当初の問題もプラグインのアップデート時にいちどだけ起きた問題も、原因は調査していないため、不安は残るが、ひとまず解決したので良しとする。

(なにかあったら振り替えれるようここに記事として残す) 

コメント

タイトルとURLをコピーしました