WordPress Cocoon で Highlighting Code Block を使ってハイライトする際の注意事項

Wordpress
Wordpress

Hightlighting Code Block という WordPress の拡張を利用することで簡単にコードのハイライトを行うことができ、多くの人が利用していると思います。

ですが、Cocoon x Highlighting Code Block の組み合わせの場合、思ったようにハイライトされない場合があります。この記事では筆者がハマった事象とその解決策を記載しています。

似たような状況の方の助けになればと思います。

作業環境

  • WordPress: 6.0.1
  • PHP:7.4.29

です。また、サイトはタイトルの通り、Cocoon のテーマを利用させていただいてます。この作業を行うにあたり、Cocoon のコードハイライトはオフにしておきます。

Cocoon の設定画面
Cocoon の設定画面

Highlighting Code Block を試す

調べた中では、Highlighting Code Block がインストール数も多くよさそうでしたのでこちらを試してみました。インストール自体は、他のプラグイン同様、管理画面からプラグイン検索で見つけてインストールできます。

Highlighting Code Block
prism.js を使用したシンタックスハイライト機能付きのコードブロックを追加します。 (Gutenberg とクラシックエディター共に利用可能)

ハイライトされない・・・

インストールして使ってみたのですが、ハイライトされず・・・ 以下はjavascript の場合ですが、次のように背景色の設定や指定言語は設定の通り動いてそうですが、行番号がでないのとシンタックスハイライトされませんでした。他の言語でも試してみましたが同様でした。

ハイライトされない例

prism.js / prism.css をカスタムしたものをアップ

最新のファイルにしたら直るのか?と思い、管理ダッシュボードの [設定]-[HCB設定] でカスタムの prism.css / prism.js を設定してみました。が結果は改善せず。

Highlighting Code Block の設定画面
Highlighting Code Block の設定画面

無効化 -> 有効化、再インストール

おまじないに近いですが、Highlighting Code Block を無効にして再度有効、一度削除して再度インストールも行いましたが、上と同じく結果は変わらずでした。

WordPress / PHP のバージョンは対応したものか

Highlighting Code Block には以下のように記載されていました。冒頭の通り、バージョンは満たしてそうです。

動作しない場合

このプラグインは、PHPバージョン5.6以降、WordPressバージョン5.6以降でのみ動作します。
お使いのPHPのバージョンやWordPressのバージョンをご確認ください。

https://ja.wordpress.org/plugins/highlighting-code-block/

Cocoon のテーマを利用する際には注意を

そんなとき、以下の記事に出会いました。

Cocoonのソースコード表示ではなく「Highlighting Code Block」を導入してみた | はっぴ~ぐぅ♪
こんにちは!サイト管理人のけろら~です♪\(^▽^)/本日の記事は、Wordpressプラグイン「Highlighting Code Block」のご紹介です。 ワタシが利用しているWordpressテーマ「Cocoon」には、デフォルト機

テーマを「Cocoon」をしている場合、
「Highlighting Code Block」を有効化しただけでは、行数が表示されません。

〜中略

Cocoonで、「Highlighting Code Block」を利用する際には、「prism.js」を縮小化しないファイルに指定することで、行数表示もできるようになったのを確認できました。

https://happyguu.com/wp-plug-in-highlighting-code-block/#index_id0

原因はこれでした。これは気づけませんね。。

対応としては、管理ダッシュボードの [Cocoon設定] – [高速化] の画面で css と js ファイルの圧縮設定で “prism.css/js” を除外します。

Cacoon設定 - 高速化
Cacoon設定 – 高速化

これでちゃんとハイライトされるようになりました!

Highlighting Code Block のハイライト例
Highlighting Code Block のハイライト例

Cocoon のハイライトと Highlighting Code Block のハイライト

折角なので、どのように見えるのか簡単ですが比較です。JavaScript と Java の場合です。

JavaScript

Highlighting Code Block(Prism.js)の場合

Highlighting Code Block のハイライト例(JavaScript)
Highlighting Code Block のハイライト例(JavaScript)

Cocoon (highlight.js)の場合

Cocoon のハイライト例(JavaScript)
Cocoon のハイライト例(JavaScript)

Java

Highlighting Code Block(Prism.js)の場合

Highlighting Code Block のハイライト例(Java)
Highlighting Code Block のハイライト例(Java)

Cocoon (highlight.js)の場合

Cocoon のハイライト例(Java)
Cocoon のハイライト例(Java)

例が悪いかもしれませんが、Java に関しては、Highlighting Code Block の方がいいですね。JavaScript はどっちもどっちです(好みの問題です)。

Highlighting Code Block で Java の追加

なお、Java はデフォルトでは言語の選択肢にないので、追加する場合には設定が必要です。

[設定] – [HCB設定] の高度な設定の部分で「java:”Java”」を追加します。

Highlighting Code Block 設定画面
Highlighting Code Block 設定画面

本来は、上記に加ええて対応するコードを含めた prism.js / css にする必要がありますが、インストールした時点の prism.js にすでに Java も含まれているようです。ので、上の選択肢を追加するだけでOKでした。

結論: Prism.js にしました

Java の記事もこれから書いていければと思っているので、Prism.js にしました。

圧縮すると正しく動作しない、はまさか、でした。ここ数年は SPA 開発が主で、圧縮も含め webpack などのモジュールバンドラ使うのが当たり前でしたが、WordPress や プラグインを使用するときにはそのあたりも独自なのかな?こういうことも注意しないといけないこと、勉強になりました。

コメント