コメント登録時に致命的なエラーが発生する問題を修正

Last Updated: 2025 年 03 月 16 日 4のコメント

このブログで数日前からコメントを作成して送信すると、致命的なエラーが発生する問題がありました。 Fatal Errorが発生してもコメントは正常に登録されたため、私はこの問題を認識していませんでした。ありがとう Naver カフェで会員がこの問題を教えていただき、問題を修正しました。

この問題は特定の状況で クラウドウェイズのBreezeキャッシュプラグインを使用すると発生します。クラウドウェイズに連絡してこの問題を修正しました。おそらく、Breezeプラグインの次期アップデートでこのバグが修正されると予想されます。

コメント登録時に致命的なエラーが発生する問題

この WordPress ブログでコメントを送信すると、以下のようになります」このウェブサイトに致命的なエラーがあります「エラーが数日間発生しました。

コメント登録時に致命的なエラーが発生する問題

Naver カフェを通じて舌ニ様がこの問題を報告して下さったのです。舌に感謝します。😄

エラーログを見てみると、次のようにBreezeプラグインのpurge_post_on_new_comment()という関数でこの問題が発生しました。

PHP Fatal error:  Uncaught TypeError: Breeze_PurgeCache::purge_post_on_new_comment(): 
Argument #2 ($approved) must be of type int, string given in 
/home/website/public_html/wp-content/plugins/breeze/inc/cache/purge-cache.php on line 420

もう少し調べてみると、関連関数は次のように定義されていました。

public function purge_post_on_new_comment( int $comment_ID, int $approved, array $commentdata ) {
		if ( empty( $approved ) ) {
			return;
		}
		// File based caching only
		if ( ! empty( Breeze_Options_Reader::get_option_value( 'breeze-active' ) ) ) {
			$post_id = $commentdata['comment_post_ID'];

			Breeze_CloudFlare_Helper::purge_cloudflare_cache_urls( array( get_permalink( $post_id ) ) );

			$url_path = get_permalink( $post_id );
			// Purge local cache for the URLs list.
			$this->clear_local_cache_for_urls( array( $url_path ) );

			$this->detect_comments_page_clear_cache();
			$this->clear_op_cache_for_comments( $comment_ID );
		}
	}

問題となる部分は$approvedの戻り値が整数でなければなりませんが、私のブログではすべてのコメントをごみ箱に送るように設定されていて致命的なエラーを撃発していました。

基本的には comment_post フックの $approved 値は次のいずれかになります。

  • 「0」→不承認(待機中)
  • 「1」→承認済み
  • 「スパム」→スパム
  • 「trash」→ごみ箱に移動しました
  • 「delete」→削除

私はゴミ箱に自動的に移動するようにしたので、 '0'や '1'のような整数ではなく、 'trash'が $approved 値として渡され、Uncaught TypeErrorが発生しました。

この問題をクラウドウェイズに報告するので、すぐに問題を解決してくれました。

Breezeプラグインは クラウドウェイズで開発して維持しているのでクラウドウェイズユーザーなら、このプラグインのバグをクラウドウェイズにライブチャットとして報告することができます。この問題を報告すると、担当者がサポートチケットを発行してくれ、Breezeプラグイン開発者が20分で問題を解決してくれました。 (おそらく、夜の時間に連絡して時間帯が合ってすぐに問題を解決してくれたのではないかと思います。)

最後に、

WordPress 訪問者が増えると、一緒に増えることがあります。まさにスパムコメントです。以前は英語、日本語、ロシア語など外国語のスパムが多かったのですが、ここ数年の間には韓国語のスパムも増加しています。

私のブログには、食い違い防止などに関するスパムがたくさん上がる方です。ほとんどのコメントはスパムで、20〜40のうちのXNUMXつは通常のコメントです。だから私はすべてのコメントをゴミ箱に移動し、通常のコメントだけを復元した後にゴミ箱を空にする方法を利用しています。

Breezeプラグインは、コメントが承認('1')または未承認('0')のみを考慮するように更新され、このブログでコメント登録時に致命的なエラーが発生しました。

コーディングの際に詳細な部分を考慮しないと、予期しない場所でエラーが発生するようです。このケースは、コメントの状態が承認('1')、未承認('0')に加えて、spam、trash、deleteなどの他のオプションも存在するため、これを考慮していません。

参照

作者のアバター

ワードクラッカーはプロの英国翻訳家として活動しており、10年以上 WordPress 関連情報を提供する WordPress 情報パッケージのブログを運営している。また、 'WordPressを使用している人 Naver カフェも管理している。

4のコメント

コメント

    • こんにちは、Breezeプラグインが更新され、再びエラーが発生しています。別の方法でトラブルシューティングを試みています。これで通常コメントが登録されます。😄

      応答
  1. そうではありませんが、他の記事に行ってみようとコメントしましたが、その警告が浮かび上がってどうしたらいいですか〜していたら、他の人が情報提供してくれて幸いです!

    応答
    • このようなエラーは、サイト運営者が認識するのが難しい場合があります。サイトにエラーが見つかった場合は、お知らせいただきありがとうございます。 Naver カフェでお知らせいただけます。😀

      応答
カカオトーク相談 カトクサービス相談