WordPress

Search Regexを使ったらサイトに重大なエラーがありましたと出た

※2020年5月25日現在、バージョンアップにより修正されています。

久しぶりにWordPressプラグインの「Search Regex」を使ったら、エラーメッセージが出ました。

 

エラーメッセージの内容

続いて、WordPressに登録していたメールアドレスに通知が届きました。

件名:[サイト名]サイトで技術的な問題が発生しています

本文:こんにちは。

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

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

しかし、Webサイトを見ても、データベースを見ても何の変哲もありません。
なぜ致命的なエラーが出たのか?
そして、その対処法は?

 

エラーの原因は?

結論から言うと、実はこのエラーに対処しなくても問題はありません。
でも、なんとなく気持ち悪いですよね。

届いたメールの通知を読み進めていくと、「エラーメッセージ: Uncaught Error: Call to undefined method SearchRegex::base_url()(以下略)」とあります。
「base_url()」が定義されていないとのことです。

Webで調べたところ、解決方法は3つくらいあって、私が採用したのは「search-regex.php」を修正する方法です。

WordPressからプラグインのphpファイルを編集する方法もありますが、

推奨されないとのことなので、FTPソフトを使い「search-regex.php」を修正しました。
修正の前に、コピーしてバックアップを取っておくと安心です。(取らなくても、失敗したら「Search Regex」プラグインをインストールし直せば良い)

 

具体的な修正方法

修正方法は「search-regex.php」に、


function base_url() {
	return __FILE__;
}

を加えればOKです。

◆修正前(138行目から最終行まで)

<?php
	}
}
 
if ( is_admin() ) {
	add_action( 'init', array( 'SearchRegex', 'init' ) );
}

◆修正後(138行目から最終行まで)

<?php
	}
	function base_url() {
		return __FILE__;
	}
}
 
if ( is_admin() ) {
	add_action( 'init', array( 'SearchRegex', 'init' ) );
}

これで、エラー表示もメールによる通知もなくなりました。

-WordPress
-, ,