【Search Regex】技術的な問題が発生していますの対処法!コピペOK

今回は「WordPress」を一括編集するときに使えるプラグイン「Search Regex」のエラーについて紹介します。

 

発生したエラーは「サイトで技術的な問題が発生しています」というもの。

Search Regexを使うたびに、致命的なエラーに関するメールが届いてしまうので、プラグインを書き換えて対処してみました。

はじめに

 

今回紹介する内容は「Search Regexの技術的な問題が発生していますというメール」について。

 

Search Regex 技術的な問題が発生しています

 

WordPressの一括編集でSearch Regexを使おうとすると、いつも以下のようなメールが届いていました。

 

サイトで技術的な問題が発生しています

こんにちは!

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

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

まずはじめに、ご自分のサイト (サイトのドメイン) を開き、表示上の問題がないか確認してください。次に、エラーが発生したページ (https://ドメイン名/wp-admin/tools.php?page=search-regex.php) を開き、表示上の問題がないか確認してください。

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

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

https://ドメイン名/wp-login.php?action=enter_recovery_mode&rm_token=**********************&rm_key=***************************

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



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

 

こんな感じで、”致命的”とか”表示上の問題がないか”とか、ちょっとびっくりするような内容のメールが来るんですよね。

しかも、Search Regexでキーワードを検索するたびに届いていました。

 

技術的な問題が発生していますの原因

 

先ほど紹介したような「技術的な問題が発生しています」というエラーは、Search Regexのプログラムが最新のコードに対応していないことが原因みたいです。

 

Search Regex 最終更新

 

WordPressのプラグインページを見るとわかるんですが、Search Regexの最終アップデートは「3年前」なんですよね。

2019/06/29現在

 

プラグインのアップデートがきていないということは、Search Regexに使われているコードも古いということになります。

 

プログラミング言語は日々変わっています。

そのため、Search Regexがリリースされた当時のコードと推奨する書き方が変わって来るんですよね。

 

これが、致命的なエラーとして引っかかっているようです。

 

技術的な問題が発生していますの対処法

 

では、実際にSearch Regexで「技術的な問題が発生しています」の対処法をみていきましょう。

今回は「プラグインの書き換え」を行うことで対応してみました。

 

Point

プラグインの書き換えを行なった後にアップデートがきた場合、編集した内容は初期化されるので注意。

Search Regexはそもそもアプデがきてないので問題ないと思います。

 

WordPressの管理画面から「プラグイン > プラグインエディター」を開いてください。

 

WordPress プラグインエディター

 

こんな感じのページが表示されるので、右上の「編集するプラグインを選択」から「Search Regex」を選択します。

見つかったら「選択」をクリックしましょう。

 

編集するプラグインを選択

Search Regex プラグインエディター

 

results.phpを開く

 

続いて、編集するプログラムを開きます。

冒頭で紹介した「技術的な問題が発生していますのメール本文」に以下のような記述がありました。

 

エラータイプ E_ERROR が /home/ID/ドメイン名/public_html/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined method SearchRegex::base_url() in /home/ID/ドメイン名/public_html/wp-content/plugins/search-regex/view/results.php:26

 

ここに書かれている通り「results.phpの26行目」を編集すれば良いみたいですね。

先ほど開いておいたプラグインエディターから「view > results.php」と進んでください。

 

Search Regex results.php

 

こんな感じのプログラムが表示されました。

 

Point
Search Regexのプログラムには「result.php」と「results.php」がありますが、間違えないように注意してください。

 

では実際にプログラムを書き換えていきましょう。

 

results.phpを編集しよう

 

対処が必要なのは「26行目」でしたね。

エディタの数字を参考に、コードの26行目を探してください。

 

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

 

こんな感じのコードが見つかると思います。

 

Point
プラグインを書き換えるので、一応コードのバックアップを保存しておいた方が良いかもしれません。

 

これを、以下のコードに書き換えてください。(コピペOKです)

 

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

 

編集が完了したら、下の方にある「ファイルを更新」をクリック。

これで、プログラムの編集が完了しました。

 

WordPress ファイルを更新

 

ただ、画像にも書かれている通り、基本的にプラグインの編集はオススメしません。

プラグインが更新されるたびに編集し直したり、間違った編集をするとプラグインが壊れたりするためですね。

 

Point
もし、問題が発生してSearch Regexをデフォルトの状態に戻したい場合は、一度プラグインを削除してから再インストールすればOKです

 

まとめ

 

今回紹介したように、プラグインを編集することで「Search Regexの技術的な問題が発生しています」に対処することができました。

頻繁に、Search Regexで一括編集を行う方は、致命的なエラーに関するメールが邪魔に感じた方は試してみてください。

 

 

ではまた。

過去にレビューしたアイテム