WordPressのプラグイン、Crayon Syntax Highlighterのエラーを解決

先日ローカル環境にサーバのこのブログをコピーして、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の使用はやめて別のプラグインを探す予定です。

Leave a Reply

Your email address will not be published. Required fields are marked *