PHP7.1以降、WordPress「重大なエラーを引き起こしたため、プラグインを有効化できませんでした」
WordPressで新しくインストールしたプラグインを有効化すると「重大なエラーを引き起こしたため、プラグインを有効化できませんでした」といった表示が出てきました。
PHPのバージョンが古い場合、バージョンアップで解決できることがあるということで、まず試みましたが今回は失敗に。私が使っているサーバーを調べてみたところPHPのバージョンは7.1でした。バージョンアップする項目にPHP7.2があったので選択して確認をしてみましたが、 エラーに変わりなく・・・。
かなり焦りましたが別に解決方法が見つかり、プラグインは有効化されました。
同じエラーが出た場合、他のプラグインにも当てはまるかもしれません。
今回は、PHP 7.1以降のWordpressで「重大なエラーを引き起こしたため、プラグインを有効化できませんでした」が出た時の対処法を紹介します。
修正する方法は次のとおりです。
①有効化ボタンをクリックして原因を調べる
有効化をクリックすると警告の下にどのPHPファイルのどの部分にエラーが発生しているのかも書かれているので、エディタで問題のあるファイルを開いて該当箇所をさがします。
私の場合は
plugins/revslider/inc_php/framework/base_admin.class.php内の
self::$arrMetaBoxes[] = $box;
の部分がエラーの原因のようでした。
②コードを追加する
$エラーの部分と同じ変数名 = [];を該当箇所の前に追加します。
self::$arrMetaBoxes = [];
self::$arrMetaBoxes[] = $box;
以上です。
修正したファイルをアップロードして、有効化をしてみるとちゃんと有効化できました。
その他の対処法
同様に$エラーの部分と同じ変数名 = array();を下記のように該当箇所の前に追加しても有効化できました。
self::$arrMetaBoxes = array();
self::$arrMetaBoxes[] = $box;
例えば・・・
$data[]= '<script type="text/javascript">' . NL;
なんて箇所にエラーが出ていたとします。
$data = array();を該当箇所の前に追加します。
$data = array();
$data[] = '<script type="text/javascript">' . NL;
修正したファイルをアップロードして、有効化をしてみるとこちらもちゃんと有効化できるようです。
というわけで、今回はWordPressで「重大なエラーを引き起こしたため、プラグインを有効化できませんでした」が出た時の対処法の紹介でした。