[WordPress] プラグイン「Invisible reCaptcha」のPHP8での不具合と代替プラグインでの対処法
プラグイン 「Invisible reCaptcha for WordPress」 は最終更新が約5年前で止まっており、PHP 8.0以上の環境では不具合が発生します。
ここでは、不具合の現象と代替プラグインを使った対処法を紹介します。
不具合の現象
設定画面の不具合
管理画面の設定メニューがすべて「設定」という表示になり、正常に設定できない状態になります。
・正常な表示例
・PHP 8以上での表示例
この状態では reCAPTCHA のサイトキー・シークレットキーの設定ができず、reCAPTCHA バッジをサイトに表示できません。
フォーム送信時のPHPエラー
フォーム送信時にエラーメッセージが表示され、送信ができない状態になります。
おすすめできない対応方法
以下の方法は、いずれもおすすめできません。
「Invisible reCaptcha for WordPress」のコードをカスタマイズする
おすすめしない理由:
- ・開発者がメンテナンスを終了しており、長期的な利用が不安定
- ・今後のWordPressやPHPのアップデートで再び不具合が起きやすい
- ・テーマや他プラグインとの互換性トラブルを招く可能性が高い
サーバーのPHPバージョンを下げる
おすすめしない理由:
- ・WordPressやテーマ・プラグインの推奨環境に合わなくなる
- ・セキュリティリスクが高まり、サイトの脆弱性が増す
- ・長期的な保守性が悪く、別の不具合が発生する可能性がある
おすすめの対処法:代替プラグインの利用
以下のいずれかの方法で対応します。
- ・プラグイン「Contact Form 7」のインテグレーション機能を利用
- ・プラグイン「reCaptcha by BestWebSoft」を利用
「Invisible reCaptcha」の設定情報を控えて無効化
・移行の前に、Google reCAPTCHA のサイトキーとシークレットキーをメモします。
「設定 > Invisible reCaptcha」から確認できます。
・「Invisible reCaptcha for WordPress」を無効化します。
Contact Form 7 のインテグレーション機能を使用
・Contact Form 7 をインストール・有効化します。
・「お問い合わせ > インテグレーション」に進み、「インテグレーションのセットアップ」をクリックします。
サイトの右下に reCAPTCHA バッジが表示されれば設定完了です。
特徴
- ・設定が簡単
- ・Contact Form 7 フォームを含むサイト全体を保護可能
- ・reCAPTCHA v3 に対応(v2には非対応)
サイト全体にはreCAPTCHA バッジを表示したくない、お問い合わせフォームのページにのみ表示したい、という場合は以下の記事で方法をご紹介しています。
[WordPress] Contact Form 7 の reCAPTCHAバッジ をフォームページ以外で非表示にする方法
reCaptcha by BestWebSoft を使用
・reCaptcha by BestWebSoft をインストール・有効化します。
管理メニューから「reCaptcha」を開きます。
以下の項目を設定します。
- ・reCAPTCHAバージョン(v2 / v3 選択可)
- ・サイトキー
- ・シークレットキー
- ・reCAPTCHA を有効化
注意: 無料版では Contact Form 7 などの外部フォームには設定できません。
特徴
- ・v2・v3両方に対応
- ・無料版では Contact Form 7 などの外部フォームには未対応(有料版で対応可)
まとめ
「Invisible reCaptcha for WordPress」はPHP8以降で不具合が発生し、開発も止まっています。
コード修正やPHPバージョンダウンなどの一時的な対応は非推奨です。
代替プラグイン(Contact Form 7のインテグレーション機能やreCaptcha by BestWebSoft)を利用して、安全で将来性のある環境へ移行しましょう。