今、ブログを始めようとしている方、
今なら、ConoHaサーバーの「WINGパックプラン」が最大55%OFF!
「1,452円/月」が「643 円/月」の「低コスト」で始められるチャンスとなっております!
お申し込みはこちらから!

ConoHa WINGは国内最速の高性能レンタルサーバーサービスで
初期費用無料、最低利用期間無しでご利用いただけます!
(この記事は2025年05月27日に投稿されました。)
WordPressサイトを運営されている皆さん、お問い合わせフォームやコメント欄のスパム対策、しっかり行っていますか?
多くのサイトで利用されている便利なスパム対策ツールの一つに「Invisible reCaptcha」があります。
しかし、この「Invisible reCaptcha」を導入した際に、「Warning: __wakeup()XXXXXX」といったエラーメッセージに遭遇し、頭を抱えている方もいらっしゃるのではないでしょうか。
このエラーは、サイトの表示には直接的な影響がないように見えても、放置しておくとセキュリティ上の不安が残ったり、将来的に予期せぬ不具合を引き起こす可能性も否定できません。
何より、トップページでエラーが表示されるのは、気持ちの良いものではありませんよね。
今回はWordPressのgInvisible reCaptchaで__wakeup()のWarningエラーが発生した際の解消方法について紹介していきます。
エラーに悩まされている方はもちろん、これから「Invisible reCaptcha」の導入を検討している方も、安心して運用できるサイト構築のために、ぜひ最後までお読みください。
WordPressのInvisible reCaptchaを導入したい場合
Invisible reCaptchaを有効化した際に発生するWarningエラーを消したい場合
Invisible reCaptchaとは
Invisible reCaptchaは、Googleが提供するスパム対策ツールの一種で、ユーザーにチェックボックスや画像認証を表示せず、バックグラウンドで自動的に人間かボットかを判別する仕組みを導入することができるプラグインになります。
WordPressのサイトを登録して「サイトキー」と「シークレットキー」を取得し、プラグインに追記することで、簡単にreCaptchaを導入することができます。
Invisible reCaptchaで発生した__wakeup()のWarningエラーの内容
Invisible reCaptchaで発生した__wakeup()のWarningエラーの内容ですが、下記の内容になります。
Warningエラー画面
Waringエラー
Warning: The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in /example.com/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php on line 37
Warningエラーとしましては、「__wakeup() メソッドはpublicで可視化すべき」という内容になります。
色々調べてみたのですが、PHP7.4より前のバージョンだと、__wakeup()メソッドはprivateで宣言することが許容されていましたが、PHP7.4以降では、__wakeup()メソッドは必ずpublicで宣言しなければならないと変更になったようです。
おそらく、プラグインの更新が止まっているため、最新のPHPとの互換性があってないのが原因でした。
Invisible reCaptchaの__wakeup()のWarningエラーを解消するには
Invisible reCaptchaの__wakeup()のWarningエラーを解消するには、プラグインのソースコードを直接修正する必要があります。
修正するは箇所は「invisible-recaptcha/includes/plugin/」にある「MchBasePublicPlugin.php」になります。
● MchBasePublicPlugin.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?php /** * Copyright (c) 2016 Ultra Community (http://www.ultracommunity.com) */ namespace InvisibleReCaptcha\MchLib\Plugin; abstract class MchBasePublicPlugin extends MchBasePlugin { public abstract function enqueuePublicScriptsAndStyles(); public abstract function registerAfterSetupThemeHooks(); protected function __construct() { parent::__construct(); add_action('wp_enqueue_scripts', array( $this, 'enqueuePublicScriptsAndStyles' )); add_action('after_setup_theme', array( $this, 'registerAfterSetupThemeHooks' )); } public function initializePlugin() { parent::initializePlugin(); //$this->enqueuePublicScriptsAndStyles(); } public static function registerShortCode($tagName, $callBackHandler) { add_shortcode($tagName, $callBackHandler ); } private function __clone() {} private function __wakeup() {} } |
上記ソースコードのの37行目にある「private」を「public」に変更します。
● MchBasePublicPlugin.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?php /** * Copyright (c) 2016 Ultra Community (http://www.ultracommunity.com) */ namespace InvisibleReCaptcha\MchLib\Plugin; abstract class MchBasePublicPlugin extends MchBasePlugin { public abstract function enqueuePublicScriptsAndStyles(); public abstract function registerAfterSetupThemeHooks(); protected function __construct() { parent::__construct(); add_action('wp_enqueue_scripts', array( $this, 'enqueuePublicScriptsAndStyles' )); add_action('after_setup_theme', array( $this, 'registerAfterSetupThemeHooks' )); } public function initializePlugin() { parent::initializePlugin(); //$this->enqueuePublicScriptsAndStyles(); } public static function registerShortCode($tagName, $callBackHandler) { add_shortcode($tagName, $callBackHandler ); } private function __clone() {} public function __wakeup() {} } |
Warningエラー画面:修正後
表示されたWarningエラーが表示されなくなりました。
また、定期的にページをロードしても、定期的に読み込むとWarningエラーが表示されません。
Invisible reCaptchaの__wakeup()のWarningエラーを解消するための方法
上記の修正を行うための方法としては下記の2つがあります。
- FTPを使用する
- プラグインファイルエディタを使用する
それぞれの方法について解説しています。
FTPを使用する
まず、1つ目はFTPを使用することです。
FTPとはFile Transfer Protocol(ファイル・トランスファー・プロトコル)といい、コンピュータネットワーク上のクライアントとサーバの間でファイル転送を行うための通信プロトコルの一つになります。
そのため、自分のPC内からレンタルしたサーバーの中へファイルを送ったり、とってきたりすることができます。
FTPではテーマファイルだけでなく、インストールしたプラグイファイルも入っているため、Invisible reCaptchaの自分のファイルを自分のPCにとってきて編集し、編集したファイルをサーバーに送ることで、修正することが可能になります。
ここでは、FTPの細かい設定の説明はここでは省き、接続できた前提で説明します。
FTPの接続が完了しましたら、自分のドメインのディレクトリまで移動し、「Plugin」ファイルの中にある「Invisible reCaptcha」をクリックします。
すると、Invisible reCaptchaのプラグインファイルが表示されますので、「invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php」を右クリック → [ダウンロード]をクリックして自分のPCへダウンロードします。
自分のPCにてソースコードを修正した後に「MchBasePublicPlugin.php」を右クリック → [アップロード]をクリックして、サーバーへアップロードすると修正完了です。
プラグインファイルエディタを使用する
2つ目はプラグインファイルエディタを使用することです。
WordPress上の[プラグインメニュー]にて[プラグインファイルエディタ]という項目があるため、そちらを選択します。
プラグインファイルエディタの選択後、インストールしてあるプラグインのファイルが表示されるため、編集するプラグインを選択に「Invisible reCaptcha」を選択して[選択]をクリックします。
すると、Invisible reCaptchaのプラグインファイルが表示されますので、「invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php」をクリックすると、修正対象のソースコードが表示されます。
37行目のソースコード箇所を修正し、[ファイルを更新]をクリックすると完了です。
今回のInvisible reCaptchaのWarningエラーがどうしても解消されない場合
上記の方法でも今回発生したWaringエラーが消えない場合は他のプラグインを使用することをおすすめします。
ここでは、Invisible reCaptchaの代わりとなるプラグインを下記の2つご紹介します。
Advanced Google reCAPTCHA
Advanced Google reCAPTCHAとは、WordPressサイトにGoogle reCAPTCHA(リキャプチャ)を簡単に導入するためのプラグインとなります。
Google reCAPTCHAの管理コンソールにアクセスし、WordPressのサイトを登録して「サイトキー」と「シークレットキー」を取得することで、reCAPTCHAを設置することができます。
またv2とv3の両方を選べるため、WordPressサイトの基本的なセキュリティ強化に非常に有効なプラグインとなっています。
reCaptcha by BestWebSoft
reCaptcha by BestWebSoftとは、BestWebSoft社によって開発されたWordPressサイトをスパムやボットから保護するために、Google reCAPTCHAを導入するプラグインとなります。
同様にGoogle reCAPTCHAの管理コンソールにアクセスし、WordPressのサイトを登録して「サイトキー」と「シークレットキー」を取得することで、reCAPTCHAを設置することができます。
また「v2」と「v3」の両方を選べるため、こちらもWordPressサイトの基本的なセキュリティ強化に非常に有効なプラグインとなっています。
まとめ
⚫︎ nvisible reCaptcha(インビジブル リキャプチャ)とは、Googleが提供するバックグラウンドで自動的に人間かボットかを判別する仕組みを導入することができるプラグインである。
⚫︎ 今回発生したWarningエラーは、PHP8.0による規約の変更である。
⚫︎ Invisible reCaptchaの__wakeup()のWarningエラーを解消するには、プラグインの下記のソースコードを修正する
・対象ソースコード: MchBasePublicPlugin.php
・修正内容: private function __wakeup() → public function __wakeup()
⚫︎ Invisible reCaptchaの__wakeup()のWarningエラーをs修正するには下記のような方法がある
・FTPを使用する
・プラグインファイルエディタを使用する
⚫︎ 上記の修正方法でWaringエラーが解決しない場合は下記のプラグインを使用する。
・Advanced Google reCAPTCHA
・reCaptcha by BestWebSoft