先日ローカル環境にサーバのこのブログをコピーして、Duplicatorで完了成功し、ローカサイトにアクセスすると、Fatal Error(致命的なエラー)が発生しました。
スクリーンは画像とメニューは出てきましたが、真ん中にエラーメッセージが並んでいます。よく読むと、
”Fatal error: Uncaught Error: Call to a member function id() on array in C:\xampp\htdocs\wordpress\wp-content\plugins\crayon-syntax-highlighter\crayon_formatter.class.php:36 ”
と出ていました。他にもエラーメッセージがずらずら並んでます。
どうやらCrayon Syntax Highlighterに問題があるようです。Crayon Syntax HighlighterはWordPressのプラグインで↓のようにソースコードをブログ内で表示するのに便利なものです。
問題点は、
Crayon Syntax Highlighter2.8.4は3年もの間全く新しくリリースされていません。
そして今私が使用してるWordPress上でのテストはやってないよと言ってます。
サーバ上は問題なかったけれど、今後WordPressのアップグレードで動かなくなる可能性もあります。
ホスティングサーバの000webhostを見たらサーバはPHP7.2を使用していました。
解決策は、crunchify.comがCrayon Syntax Highlighterの修正版を持っていたのでダウンロードして、ローカルのプラグインのディレクトリ(↓は私の例です)
C:\xampp\htdocs\ritsukoblog\wp-content\plugins\crayon-syntax-highlighter
にすべてコピーしたら、全く問題なく動きました。ソースコードはこちらです。
問題のファイルは、
1.crayon_langs.class.php
2.crayon_formatter.class.php
3.crayon_settings.class.php
にあり、新しいコード上はそれぞれ修正してあります。
今後の対策として、
Crayon Syntax Highlighterの使用をやめる。あるいは
crunchify.comの修正版を使用し続けるのどちらかでしょう。
私はとりあえずローカルの環境を開発用に使いたかったので、この件は一応終了です。
がまた別の機会にCrayon Syntax Highlighterの使用はやめて別のプラグインを探す予定です。