WordPressメモ Search Everytingプラグインを実行するとワーニングが表示されるので対応してみる

レンタルサーバーの移行をしてたんだけど、記事の内容を置換しようと思ったらこんなメッセージが表示される…。

 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Deprecated: Function create_function() is deprecated in /.../wp-content/plugins/search-everything/search-everything.php on line 236
Deprecated: Function create_function() is deprecated in /.../wp-content/plugins/search-everything/search-everything.php on line 236
Deprecated: Function create_function() is deprecated in /.../wp-content/plugins/search-everything/search-everything.php on line 236

で、いろいろ調べてみたんだけど…どうやらPHPでバージョンが7.2以降ではcreate_function()は非推奨になったそうで。
今借りてるサーバーでPHPのバージョンを新しくしたことが起因したみたい。
んま、セキュリティのこともある?し新しいバージョンに置き換わってようなので、思い立ったが吉日と思ったのもあり対応することに。

んで、プラグインのコードを修正。
コードの修正は管理画面のプラグインエディターで修正した。

もともとあったコードはこんなん。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] ));
$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] ));
$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] ));

これをコメントアウトして次のように修正。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// 新しいPHPへの対応
//$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] ));
$search_terms = array_filter(array_map( function($a)
{
return trim($a, "\"'\n\r ");
}, $matches[0] ));
// 新しいPHPへの対応 //$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] )); $search_terms = array_filter(array_map( function($a) { return trim($a, "\"'\n\r "); }, $matches[0] ));
// 新しいPHPへの対応
//$search_terms = array_filter(array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] ));
$search_terms = array_filter(array_map( function($a) 
{
    return trim($a, "\"'\n\r "); 
}, $matches[0] ));

で、実行してみると…エラーでなくなってる。

んまま、そんなこんなで明日への自分へのメモってことで。