完全無料!授業料0円のプログラミング教室特集はこちら

Search Regexで「サイトで技術的な問題が発生しています」メールが届く理由と解決方法

Search Regexで「サイトで技術的な問題が発生しています」メールが届く理由と解決方法

質問してる人

アラサー男子さん、この記事で教えてもらった「Search Regex」ですけど、めちゃくちゃ便利です。
おかげさまで見出しの一括変換ができました。
それはそれは。
喜んでいただいて光栄です。

アラサー男子 in L.A.

質問してる人

でも……。
でも…?

アラサー男子 in L.A.

質問してる人

「サイトで技術的な問題が発生しています」とかいうメールが届くんですけど…
「Search Regex」が原因みたいなことが書かれてまして…
あぁ、そのメールですね。
ぶっちゃけ、放置していても何も問題ありません。
でも確かに「Search Regex」を使うたびにエラーメールが届くのはあまり気持ち良くないですよね。
というわけで解決方法を見つけました。

アラサー男子 in L.A.

 

「Search Regex」はサイト内の指定したテキストやコードを一括変換してくれるめちゃくちゃ便利なプラグインです。

 

「Search Regex」って何?という方はこちらの記事をご確認ください。

> Search Regexでコードもテキストも一括変換【置換プラグインの使い方】

スポンサードサーチ

 

この「Search Regex」は作業効率を爆上げしてくれるのですが一つだけ問題がありまして、これを使っていると使用するたびにエラーメールが届きます。

メールを無視できる人はそれで良いと思うのですが、僕は割と気になる方なので同じお悩みを抱えている方向けに解決方法を見つけました。

ということで、本記事では「Search Regex」を使うたびに届く「サイトで技術的な問題が発生しています」メールの解決方法を解説しますのでご参照ください。

 

Search Regexのエラーメールから問題を突き止める

Search Regexのエラーメールから問題を突き止める

実際に届くエラーメールがこちら。

こんにちは。

WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。

今回の場合、WordPress がプラグイン Search Regex でエラーを捉えました。

まずはじめに、ご自分のサイト (https://ksonoda.com/) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ () を開き、同様に問題がないか確認してください。

この問題をさらに調査するにはサーバーホストに連絡してみてください。

もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。

サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。

この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション5.3.2
現在のテーマ:  (バージョン 4.0)
現在のプラグイン: Search Regex (バージョン 1.4.16)
PHP バージョン7.2.21

エラー詳細
===============
エラータイプ E_ERROR が /home/sample/sample.com/public_html/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined method SearchRegex::base_url() in /home/sample/sample.com/public_html/wp-content/plugins/search-regex/view/results.php:26
Stack trace:
#0 /home/sample/sample.com/public_html/wp-content/plugins/search-regex/search-regex.php(130): include()
#1 /home/sample/sample.com/public_html/wp-content/plugins/search-regex/search-regex.php(116): SearchRegex->render(‘results’, Array)
#2 /home/sample/sample.com/public_html/wp-includes/class-wp-hook.php(286): SearchRegex->admin_screen(”)
#3 /home/sample/sample.com/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(”, Array)
#4 /home/sample/sample.com/public_html/wp-includes/plugin.php(465): WP_Hook->do_action(Array)
#5 /home/sample/sample.com/public_html/wp-admin/admin.php(253): do_action(‘tools_page_sear…’)
#6 /home/sample/sample.com/public_html/wp-admin/tools.php(10): require_once(‘/home/sample/na…’)
#7 {main}
thrown

 

いきなりこんなメールが届くと不安になりますね。

ただ、繰り返しますが、このメールは放置していてもブログには全く問題ありません。

 

エラーの場所を突き止めた

メール本文にある「エラーの詳細」部分を確認してみると下記のような表記がありました。

 

エラータイプ E_ERROR が /home/sample/sample.com/public_html/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。

 

プラグインのphpファイルに問題があるようなので、該当する箇所を見てみましょう。

 

エラー該当箇所を探す

エラー箇所は [wp-content] > [plugins] > [search-regex] > [view] > [results.php]にあるので、該当するファイル「results.php」を探します。

できればFTPクライアントソフトを使ってファイルをダウンロードすることをおすすめしますが、FTPクライアントソフトの使い方がわからないという方は、WordPress管理画面からもファイルを特定できます。(下図参照)

エラー該当箇所を探す

 

「results.php」の26行目を見てみる

メールには「ファイルの26行目でエラーが発生した」とあったので該当箇所を見てみます。

すると下記のような表記を発見できます。

<img src="<?php echo plugins_url( '/images/small.gif', $this->base_url() ); ?>" style="display: none" alt="pre"/>

 

この中で問題を引き起こしているのは $this->base_url() でして、URLをしっかり定義できていないのでエラーメールが届いてしまっているという状況ですね。

 

Search Regexエラーを解決する

Search Regexエラーを解決する

このエラーを解決するには該当箇所のURLを定義してあげれば良いので、その部分を書き換えます。

どこ変更するかというと、$this->base_url() を dirname(__FILE__) にすればOK。

以下、書き換え用のコードを用意したのでコピペしてください。

 

書き換え前

<img src="<?php echo plugins_url( '/images/small.gif', $this->base_url() ); ?>" style="display: none" alt="pre"/>

書き換え後

<img src="<?php echo plugins_url( '/images/small.gif', dirname(__FILE__) ); ?>" style="display: none" alt="pre"/>

スポンサードサーチ

 

これで解決|Search Regexを快適に使おう

以上のコード編集をすることでエラーメールは届かなくなるはずです。

エラーメールフリーの快適Search Regexライフをエンジョイしましょう。

おわり。