WordPress Twenty Seventeen
記事の内容が表示されないページが発生
Crayon Syntax Highlighter のバグ
記事の内容が表示されないページが発生
Crayon Syntax Highlighter のバグ
Webサーバーをバージョンアップし、WordPress の移行結果を検証していると、「記事のタイトルだけが表示されて、記事の内容が全く表示されない」ページが見つかる。全てのページではなく、いくつかの特定のページのみであることに気付く。
以下、この原因の解明手順と解決策にたどり着いた記録。
スポンサー リンク
目 次
1. Webサーバーのバージョンレベル
現行サーバーのバージョン。
Raspbian : Stretch
Nginx : 1.6.2
PHP : 5.6.38
Mysql : 14.14
Nginx : 1.6.2
PHP : 5.6.38
Mysql : 14.14
新サーバーのバージョン。
Raspbian : Stretch Release date:2019-04-08
Nginx : Stable version 1.16.0
PHP : 7.3.6 - 2019.05.31
MariaDB : 10.1.38
Nginx : Stable version 1.16.0
PHP : 7.3.6 - 2019.05.31
MariaDB : 10.1.38
PHPを、PHP5.6からPHP7.3に変更したのが大きな特異点。
2. 障害の発生状況
3. プラグインを全て停止し、プラグインが原因かどうか調査
表示された記事の内容を確認して気付いたのが、内容が表示されなかったページには『ソースコードを表示』しており、そのソースコードが綺麗に表示されていないという点だった。(プラグインを停止しているからであるが・・・)
ソースコードの表示には「Crayon Syntax Highlighter」を使用しており、該当のページにだけ問題が発生していると特定する。
そこで、「Crayon Syntax Highlighter」のみを停止状態にし、その他のプラグインを有効化する。→ 全てのページの内容が表示される。
4. 『Crayon Syntax Highlighter』プラグインが原因と判明
【 Crayon Syntax Highlighter のバグ 】という検索キーワードでググると、
2019年3月現在、「Crayon Syntax Highlighter」に深刻なエラーが発生しています。
と、いう記事が出てきた。
以下、「2019年版 Crayon Syntax Highlighterのエラー」サイトの内容を転載。
「Crayon Syntax Highlighter」は、ホームページ上でソースコードを綺麗に表示できる「WordPressプラグイン」です。これが一番人気です。
---------------------------
「Crayon Syntax Highligher」プラグインは、インストールの時にお気付きかもしれませんが、実は3年以上前からバージョンアップされていません。
作者は、2013年には既に「製作を辞めた」と言っているようです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
最近、PHPのバージョンが 7.3.1 になりました。
それによって、この致命的とも言える「潜在的バグ」が浮上したようです。
5. バグの修正要領
上記記事を参考に、以下の通り修正。
「crayon_langs.class.php」 の修正。
sudo nano /xx/yy/zz/wp-content/plugins/crayon-syntax-highlighter
行番号と修正内容。
337 // Override
338 function clean_id($id) {
339 $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
340 return preg_replace('/[^\w\-+#]/msi', '', $id);
341 }
338 function clean_id($id) {
339 $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
340 return preg_replace('/[^\w\-+#]/msi', '', $id);
341 }
6. 修正結果
修正後、「Crayon Syntax Highligher」プラグインを有効にする。
以上。
(2019.07.13)
(2019.07.13)
スポンサー リンク