WordPressのエラーメッセージ解消方法を発見!

coffee-break by rt523m^^

こんにちは、rt523mです^^

 

WordPressでブログをやっている方で、トップページに以下のようなエラーメッセージが出る方いませんか?

Warning: The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in (略)

 

ついに、解決方法がわかりました!

1か月くらい悩みました。

ネットを探してもYoutube探しても、SNSで聞いても解決しなかったのですが、ChatGPT

に聞いたら教えてくれました。

 

ちなみに、いかにもプログラミングちっくな単語が登場しますが、何を隠そう、プログラミングもコードも何もかもまったくのド素人が解決したので、誰でもできます。

最後まで読んでいただければ、それをおわかりいただけると思います。

 

 

解決方法はこちら:WPのプラグインファイルエディターにて該当phpを修正

以下の手順で修正することができました。

  1. WordPressにログイン
  2. 左側の「プラグイン」の「プラグインファイルエディター」を選択
  3. 右上の「編集するプラグインを選択」で「Invisible reCaptcha」を選択
  4. その下にある「プラグインファイル」の「includes」の中にある「plugin」の中から「MchBasePublicPlugin.php」を選択
  5. メイン画面の37行目を以下のように変更する。

    private function __wakeup()」 → 「public function __wakeup()」

 

これだけです。

でもここにたどり着くまで大変だった!

特に手順4.の「MchBasePublicPlugin.php」のところ。

迷宮ダンジョンの旅が長かったー。

 

注意!プラグインファイルエディターは安易にいじらない!

ここで注意です。

<注意!>

ちなみに、この「プラグインファイルエディター」はプラグインを編集できるところのようですが、基本的に素人は触らない方がいいです!

you bertter know what you’re doingって感じです。

素人的な対策としてはこんな感じでしょうか。

対策1. 上記の1か所以外は絶対に、いじらない。

対策2. ちゃんとbefore afterのスクリーンショットを撮っておく。

対策3. 自分がやった手順をこと細かにワードやメモに書き残しておく。

対策4. 後日、不具合があったらちゃんと元に戻せるように万全の体制で挑む。

 

皆さん、good luckです!

 

解決した経緯:ChatGPTにただ聞いただけ!

ChatGPTって何?という方は以下をお読みください。

  • ChatGPTはOpenAIが開発した大型の言語モデルです。
  • このモデルは多くのトレーニングデータを学習し、人間のような自然な文章生成や質問応答ができるようになっています。
  • ChatGPTはAPIとして提供されており、ウェブサイトやアプリなどでのテキスト処理タスクを自動化するために利用されます。
  • このモデルは現在最新の情報を含んでおり、2021年までのデータをカバーしています。
  • ChatGPTは人工知能技術の進歩を反映した最先端のモデルであり、多様なアプリケーションに利用することができます。

もう少しわかりやすく、どんな機能があるのかを説明すると、以下の通りです。

  • ChatGPTは、OpenAIによって訓練された大型の自然言語処理モデルです。
  • 人間が使用するテキストと同じように、自然言語を理解し、文章を生成することができます。
  • 役割としては、FAQの自動回答や、文書生成などがあります。
  • アプリケーションやWebサイトに組み込むことで、ユーザーサポートやコンテンツ作成などが自動化されることが期待されます。
  • 最新の情報に対応しているため、2021年以降の情報に関する質問には正確に回答することができます。

 

ちなみに、上記の緑字の説明は全てChatGPTに書いてもらいました。

 

WordPressエラーメッセージの解決策に話を戻します。

以下がChatGPTとのやり取りです。スクリーンショットではなくテキストをコピペしました。

ちなみに、結果的にはChatGPTの説明では解決しなかったのですが、途中の説明などがとても役に立ち、ド素人でも解決の糸口を見つけることができました。

なぜか、途中で英語で回答が来たりしました。

なお、質問者の素人っぷりにはご容赦ください。^^

 

  • rt523m
wordpressで以下のようなエラーメッセージが出るのですが、解決方法を教えて。
 
 
  • ChatGPT

詳細なエラーメッセージを教えていただけますか? WordPressでは、エラーメッセージによって原因が異なりますので、正確なエラーメッセージを確認することで、適切な解決方法を提示することができます。

 
  • rt523m
Warning: The magic method
InvisibleReCaptcha\MchLib\Plugin\
MchBasePublicPlugin::__wakeup() must have public
visibility in /home/c2227759/public_html/
financialliteracybettermentcommittee.com/
wp-content/plugins/invisible-recaptcha/includes/
plugin/MchBasePublicPlugin.php on line 37
 
 
  • ChatGPT

このエラーメッセージは、Invisible ReCaptchaプラグインに関連しています。このエラーは、MchBasePublicPluginクラス内の__wakeup()メソッドがpublicアクセス修飾子を持っていないことが原因です。

この問題を解決するには、MchBasePublicPlugin.phpファイル内の__wakeup()メソッドにpublicアクセス修飾子を追加することが必要です。

例:

php
public function __wakeup() {
// Your code
}

これで、警告メッセージが消えるはずです。それでも問題が解決しない場合は、WordPressのテーマや他のプラグインとの相互作用の影響を確認する必要があります。また、このエラーが発生している原因についてのサポートを提供するプラグインの作成者に問い合わせすることもできます。

 
  • rt523m
それはどこにあるの? MchBasePublicPlugin.phpファイルがわかりません。
 
 
  • ChatGPT

MchBasePublicPlugin.phpファイルは、Invisible ReCaptchaプラグイン内のファイルです。WordPressを使用している場合、以下のパスにあります:

bash
/home/c2227759/public_html/
financialliteracybettermentcommittee.com/
wp-content/plugins/invisible-recaptcha/
includes/plugin/MchBasePublicPlugin.php

このパスは、サイトのホスティングアカウントによって異なりますので、実際のパスが異なる場合があります。また、WordPressをローカル環境で実行している場合は、ホスティングアカウントと同様にパスが異なる可能性があります。

 
  • rt523m
その「パス」というのはなんですか?
 
 
  • ChatGPT

「パス」というのは、コンピュータ上でファイルやフォルダが保存されている場所を指します。これは、各ファイルやフォルダが格納されている場所までの「道筋」を意味します。

例えば、WordPressのMchBasePublicPlugin.phpファイルは以下のようなパスにあります:

bash
/home/c2227759/public_html/
financialliteracybettermentcommittee.com/
wp-content/plugins/invisible-recaptcha/includes/plugin/
MchBasePublicPlugin.php

このパスは、/home/c2227759/public_html/
financialliteracybettermentcommittee.comから開始し、
「wp-content/plugins/invisible-recaptcha/includes/plugin/」というフォルダを経由して、MchBasePublicPlugin.phpファイルまでの「道筋」を示しています。

 
 
  • rt523m
MchBasePublicPlugin.phpファイルがわかりません。もっと細かく手順を教えて。
 
 
  • ChatGPT

MchBasePublicPlugin.phpファイルはInvisible ReCaptchaプラグインの一部であり、WordPressサイトにインストールされているプラグインの中から探すことができます。

以下がMchBasePublicPlugin.phpファイルを見つける方法の手順です:

  1. WordPressの管理画面にログインする。
  2. 「プラグイン」をクリックする。
  3. インストール済みのプラグインの一覧が表示されるので、「Invisible ReCaptcha」を探す。
  4. 「Invisible ReCaptcha」の「詳細」をクリックする。
  5. 「ファイル」タブをクリックする。
  6. 「MchBasePublicPlugin.php」ファイルを探す。

このように、WordPressの管理画面からMchBasePublicPlugin.phpファイルを見つけることができます。このファイルを編集することで、エラーが発生している原因を解決することができる場合があります。注意:このような操作はプログラミング知識があることが前提となります。不正確な編集はサイトの動作に悪影響を与える可能性があるため、注意が必要です。

 
  • rt523m
他の方法で先ほどのエラーメッセージを解決する方法はありますか?
 
 
  • ChatGPT

The error message you are encountering is related to the “Invisible ReCaptcha” plugin for WordPress. To resolve it, you can try the following steps:

  1. Deactivate the plugin: Go to your WordPress dashboard, navigate to “Plugins,” and deactivate the “Invisible ReCaptcha” plugin.

  2. Edit the plugin code: You can access the plugin code through your hosting file manager or FTP client. Find the file named “MchBasePublicPlugin.php” in the “invisible-recaptcha/includes/plugin” directory. Edit the file and change the visibility of the “__wakeup” method from “private” to “public”.

  3. Reactivate the plugin: After making the changes, reactivate the plugin from the WordPress dashboard.

If these steps do not resolve the error, you may want to consider reaching out to the plugin developer or a WordPress developer for further assistance.

 
  • rt523m
他の解決方法は?
 
 
  • ChatGPT

Another possible solution to resolve the error message you are encountering is to upgrade the plugin to the latest version. Sometimes, plugin developers release updates that address bugs and compatibility issues.

You can check if there is a newer version of the plugin available in the WordPress plugin repository or on the plugin developer’s website. If an upgrade is available, follow the steps to install it on your website.

If you still encounter the error after upgrading the plugin, you may consider trying a different reCAPTCHA plugin that is compatible with your website and PHP version. You can find alternative reCAPTCHA plugins in the WordPress plugin repository.

 
  • rt523m
以下の箇所が見当たりません。詳しく教えてください。
「Invisible ReCaptcha」の「詳細」をクリックする。 「ファイル」タブをクリックする。
 
 
  • ChatGPT

The steps to locate the plugin files you mentioned can vary based on the WordPress platform and theme you are using. However, the general process is as follows:

  1. Log in to the WordPress admin dashboard of your website.
  2. Go to the “Plugins” section from the left side menu.
  3. Find the “Invisible ReCaptcha” plugin in the list of installed plugins and click on “Details” under its name.
  4. On the plugin details page, click on the “Files” tab.

This should show you a list of files included in the plugin and you should be able to find the “MchBasePublicPlugin.php” file you are looking for. If you still can’t locate it, you may need to access your website’s file system using an FTP client or cPanel and navigate to the plugin folder.

 
  • rt523m
I don’t see the “Details” under its name.
 
 
  • ChatGPT

If you don’t see the “Details” option under the “Invisible ReCaptcha” plugin in WordPress, it may mean the plugin is outdated or not installed correctly.

Try updating the plugin or reinstalling it, and if the issue persists, contact the plugin support or seek help from the WordPress community for further assistance.

 
  • rt523m
it only says “無効化”
 
 
  • ChatGPT

If you only see the option to “Deactivate” the plugin in your WordPress, it may mean that the plugin is currently active but you don’t have access to its settings or additional features.

You can try deactivating the plugin and then reactivating it, or you can try reinstalling it. If the issue persists, you can seek help from the plugin’s support team or from the WordPress community.

 
  • rt523m
I don’t see the “Files” tab. where can i find it?
 
 
  • ChatGPT

It is likely that the “Files” tab can be found within the WordPress dashboard under the plugin section. To access it, log in to your WordPress site, go to the “Plugins” section, and look for the “Invisible ReCaptcha” plugin. Once you’ve found it, look for a tab or option that allows you to view the files associated with the plugin, which should be labeled as “Files” or something similar. If you are still unable to find it, you may consider checking the plugin documentation or reaching out to the plugin developer for assistance.

 
  • rt523m
whats the difference between blue and red words?
public function __wakeup() { // Your code }
 
 
  • ChatGPT

In this code, “public” and “function” are reserved keywords in PHP that have a specific meaning in the language. The keyword “public” determines the visibility of the “__wakeup” method, which means it can be accessed from anywhere within the program. The keyword “function” is used to declare a function in PHP, and the “__wakeup” function is a special type of magic method in PHP known as a “wakeup” method.

The red words are variables or custom function names and the blue words are reserved keywords in the PHP language.

 
  • rt523m
日本語で説明して。
 
 
  • ChatGPT

赤い文字と青い文字の違いは、プログラミングにおいては文法上の違いです。青い文字はプログラミング言語で定義されているキーワードや修飾子を表しますが、赤い文字は変数名や関数名など、ユーザーが定義するものを表します。この例でいうと、「public function __wakeup()」はメソッドの定義で、「public」は修飾子、「__wakeup」はメソッド名です。

 
  • rt523m
プラグインファイルエディターからやったらできたみたい。
 
 
  • ChatGPT

それは良かったですね!

 
 

 

この操作は安全なのか?

ここで1つ疑問が、、、。

Warningというエラーメッセージは出なくなりましたが、このプラグインの編集によってどんな影響があるのだろう?

ひょっとしてセキュリティ上、危険なことになっていないだろうか?

ということで、これについても追加でChatGPTに聞いてみました。

こんな質問をしてみました。

「private function __wakeup()」 を 「public function __wakeup()」に編集するとどのような影響があるの?

 

答えはこちら。

「private function __wakeup()」と「public function __wakeup()」の違いはアクセス制限です。「private」は同じクラス内からのみアクセスが可能ですが、「public」はどこからでもアクセスが可能です。

このような変更は、プラグインの動作に影響する可能性があります。また、他のプラグインやテーマとの相互作用も影響する可能性があります。予期しない動作や不具合が発生する可能性もあるため、注意が必要です。

まあ、トップページはどこからアクセスされても問題ないでしょう、ということであまり気にしていません。

もし不具合などがあったらまたこちらの記事で紹介します。

もし詳しい方で”それ間違っているよ!”という指摘があれば、是非コメントをお寄せください。

 

以下が、ChatGPTとのやり取りです。

 

  • rt523m
「private function __wakeup()」 を 「public function __wakeup()」に編集するとどのような影響があるの?
 
 
  • ChatGPT

「private function __wakeup()」と「public function __wakeup()」の違いはアクセス制限です。「private」は同じクラス内からのみアクセスが可能ですが、「public」はどこからでもアクセスが可能です。

このような変更は、プラグインの動作に影響する可能性があります。また、他のプラグインやテーマとの相互作用も影響する可能性があります。予期しない動作や不具合が発生する可能性もあるため、注意が必要です。

 
  • rt523m
その「同じクラス」というのは具体的にどういう意味?
 
 
  • ChatGPT

“同じクラス”というのは、同じ名前のクラスのことを指します。「private function __wakeup()」と「public function __wakeup()」がある場合、これらは同じクラスに属するということです。

 
  • rt523m
「クラス」の意味がわかりません。
 
 
  • ChatGPT

「クラス」はオブジェクト指向プログラミングにおいて、オブジェクトを作成するための設計図のことを指します。クラスはオブジェクトのデータ構造と処理を定義し、同じクラスから作られたオブジェクトは、同じ構造を持つことができます。

 
  • rt523m
先ほどの「「private」は同じクラス内からのみアクセスが可能」という説明について具体例を教えてください。
 
 
  • ChatGPT

“クラス” はオブジェクト指向プログラミングにおいて、ある特定のタイプのオブジェクトを定義するものです。クラス内には、そのオブジェクトが持つデータ (変数) と振る舞い (関数) を定義することができます。

「private」は、そのクラス内からのみアクセスが可能なメンバ変数またはメソッドを示します。これは、外部から直接アクセスすることができないことを意味します。

例えば、次のようなクラスを考えます。

php
class BankAccount {
private $balance;

public function deposit($amount) {
$this->balance += $amount;
}

private function validateAmount($amount) {
if ($amount <= 0) {
throw new Exception('Invalid deposit amount');
}
}
}

このクラスでは、$balance 変数は private として定義されています。このため、外部から直接アクセスすることができず、代わりに deposit メソッドを使用する必要があります。また、validateAmount メソッドも private として定義されています。これは、このメソッドはクラス内でのみ使用するものということを示しています。

 

 

Thanks ChatGPT, it was very helpful!

コメント

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