ワードプレスPHPバージョンの変更によるエラーメッセージ
〜Invisible reCaptchaの警告とその対処法〜
WordPressサイトを運営していると、PHPのバージョンアップに伴って突然表示される警告メッセージに驚くことがあります。とくに最近増えているのが、以下のようなエラーです。
Warning: The magic method InvisibleReCaptcha…
このメッセージは、WordPressプラグイン「Invisible reCaptcha」が新しいPHPの仕様に対応していないことを示しています。今回はこの警告の原因と、具体的な対処法についてわかりやすく解説します。
🔍 警告の原因:マジックメソッドの仕様変更
PHPには「マジックメソッド」と呼ばれる特別な関数があり、__wakeup()
はそのひとつです。これは、オブジェクトが復元される際に自動的に呼び出されるメソッドで、セキュリティ対策などに使われます。
しかし、PHP 8.x以降ではこの__wakeup()
メソッドは必ずpublic
として定義されていなければならないという仕様に変更されました。ところが、Invisible reCaptchaのコードではこのメソッドがprivate
として定義されているため、警告が表示されてしまうのです。
🛠️ 解決方法①:コードを修正する
もっとも直接的な解決策は、プラグインのソースコードを修正することです。
修正手順:
- WordPressのファイルマネージャーまたはFTPで、以下のファイルを開きます:
/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php
- 該当箇所(おそらく37行目付近)にある
private function __wakeup()
を以下のように変更します:public function __wakeup()
- 編集前には必ずバックアップを取っておきましょう。
この修正により、PHPの仕様に準拠した形となり、警告は表示されなくなります。
🔄 解決方法②:代替プラグインへの乗り換え
Invisible reCaptchaは長らく更新が止まっており、今後の互換性やセキュリティ面で不安が残ります。そこで、より安定した代替プラグインへの移行をおすすめします。
おすすめプラグイン:
- ✅ Advanced Google reCAPTCHA
- ✅ reCaptcha by BestWebSoft
とくに「Advanced Google reCAPTCHA」は設定も簡単で、GoogleのreCAPTCHA v2/v3に対応しています。
私はコードの書換えに自信がなかったので、簡単にできそうなInvisible reCaptchaをAdvanced Google reCAPTCHAへの移行で対処してみました。
🔧 Advanced Google reCAPTCHAの導入手順
- WordPress管理画面で「プラグイン」→「新規追加」を選択
- 「Advanced Google reCAPTCHA」で検索し、「今すぐインストール」→「有効化」
- Google reCAPTCHA公式サイトでサイト登録し、キーを取得
- WordPress側でキーを設定し、ログイン画面やコメント欄などに適用
- Invisible reCaptchaは削除しておくと安心です
なお、既存のInvisible reCaptchaで取得したキーはそのまま使える場合が多いですが、動作確認は必ず行いましょう。
⚠️ 解決方法③:PHPバージョンを戻す(非推奨)
一時的な対処として、PHPのバージョンを7.4以下に戻すことで警告を回避することも可能です。ただし、PHP 7.4はすでにセキュリティサポートが終了しているため、長期的にはおすすめできません。
✅ まとめ
PHPバージョンの変更によって表示される「Invisible reCaptcha」の警告は、プラグインのコードが新しい仕様に対応していないことが原因です。以下のいずれかの方法で対処できます:
- プラグインコードの修正(
__wakeup()
をpublic
に変更) - 代替プラグインへの乗り換え(Advanced Google reCAPTCHAなど)
- PHPバージョンの一時的なダウングレード(非推奨)
WordPressサイトの安定運用には、プラグインの更新状況やPHPの互換性を定期的にチェックすることが欠かせません。今回のような警告が出た場合も、冷静に対処すれば問題なく乗り越えられます。ぜひ、この記事を参考に安全なサイト運営を続けてくださいね!
尚、ここででの対応方法が全てではないと思っているので、是非ご自分で歩かの方の記事やサイトで調べてご自分にあった方法で試してみて下さい。😊