サーバーのPHPが1年ぐらい前にVer.7に対応していたので、アップデートしてみました。
そしたらFatal Error・・・。
どうやら利用してるプラグインに問題がある模様・・・。
(;´Д`)

PHP 7でエラーが起きたWordPressプラグイン

・LAMP Version Checker
・AutoExternalLink
・brBrbr

上記の3つのプラグインでエラーが出ました。
力技もありますが修正方法を簡単に書きます。

LAMP Version Checkerというプラグイン

まず、LAMP Version Checkerというプラグイン。
利用してるサーバーでWordPressを動かすのに必要な各種ソフトウェアのバージョンを簡単に確認できるプラグインです。
このプラグインのlamp-version-checker.phpの57行目に何か問題がある模様。

$this->versions['MySQL'] = mysql_get_server_info($wpdb->dbh);

正直分からなかったので取り合えずこの1行だけ無効化(笑)

/* $this->versions['MySQL'] = mysql_get_server_info($wpdb->dbh); */

そしたらエラーは無くなったのですがWordPress管理画面のLAMP Version画面でMySQLのバージョンが表示されなくなりました(笑)
取り合えず、OK(笑)

AutoExternalLinkというプラグイン

まだ他のプラグインでもエラー要因があって、AutoExternalLinkというプラグインです(;´Д`)
外部リンクにアイコンを付けてtarget=”_blank”しなくても別窓で開いてくれます。
このプラグインのAutoExternalLink.phpの51行目に問題がある模様。
これは、

$wpAEL = & new AutoExternalLink();

を、

$wpAEL = new AutoExternalLink();

の様に、“&”を抜いてあげたらエラーは解消されました。

brBrbrというプラグイン

そうです、WordPressの記事投稿時にテキストエディタでイチイチ改行タグbrを書かなくても普通に改行してくれるプラグインです。
こいつも引っかかりました・・・。

brBrbr.phpの24~26行目、

$brbr = preg_replace('/(<pre.*?>)(.*?)<\/pre>/ise', "clr_br('$0')", $brbr);
$brbr = preg_replace('/(<script.*?>)(.*?)<\/script>/ise', "clr_br('$0')", $brbr);
$brbr = preg_replace('/(<form.*?>)(.*?)<\/form>/ise', "clr_br('$0')", $brbr);

を、

/* $brbr = preg_replace('/(<pre.*?>)(.*?)<\/pre>/ise', "clr_br('$0')", $brbr); */
/* $brbr = preg_replace('/(<script.*?>)(.*?)<\/script>/ise', "clr_br('$0')", $brbr); */
/* $brbr = preg_replace('/(<form.*?>)(.*?)<\/form>/ise', "clr_br('$0')", $brbr); */

に全部無効化してやったら取り合えずエラーは収まり通常通り使えそうです(笑)

PHP5系と7系で色々と変わったのかな。
長い間更新されていないプラグインは、PHP7系で禁止されたスクリプトを含んでいるようで、メンテナンスも必要ですね・・・。
代替プラグインも探さないと駄目かなぁ。


コメントを投稿する

* が付いている項目は必須です。
メールアドレスが公開されることはありません。