コードブロックの可読性向上のためにhighlight.jsを導入
WordPressのコアブロックにあるコードブロックのデフォルト表示はこのように、とてもシンプルです。
シンプルすぎて、文章との境目がなくコード用のコメントなのか判別がつきにくいです。

これも、WordPress専用プラグインではなく、「highlight.js」というjQueryプラグインでハイライトすることにしました。
理由としては以下が挙げられます。
- コアブロックのコードブロックで記述すれば、そのままハイライトされる
- プラグイン用のブロックが増えずに済む
- 無料テーマで有名な「Cocoon」(https://wp-cocoon.com/highlight-js/)でも採用されているので調べやすい
プラグインファイルをダウンロード
https://highlightjs.org から使用言語にチェックしダウンロードします。
私はCommon枠からcss、javascript、json、markdown、php、scssを選びました。
不要な言語を削った分、ファイルサイズを軽減することができます。

ダウンロードしたフォルダを解凍し、「highlight.min.js」と、stylesフォルダ内から好みのCSSを選択します。
私は「atom-one-dark.min.css」にしました。
ファイルを読み込む
開発環境に合わせて、「highlight.min.js」と「atom-one-dark.min.css」を配置します。

私は、投稿ページのみ読み込むようにしました。
wp-content/themes/mytemplate/functions.php
/**
* CSS,JSを読み込ませる
*/
function mytemplate_enqueue_scripts() {
省略…
// 投稿ページのみ
if (is_single()) {
省略…
// Highlight.jsの読み込み
wp_enqueue_style('style_highlight', get_template_directory_uri() . '/assets/css/lib/atom-one-dark.min.css', array(), null, 'all');
wp_enqueue_script('js_highlight', get_template_directory_uri() . '/assets/js/lib/highlight.min.js', array(), null, true);
}
// トップページのみ
if (is_home()) {
省略…
}
}
add_action('wp_enqueue_scripts', 'mytemplate_enqueue_scripts');
/**
* DOMが完全に生成された後にhljs.highlightAll();を実行
*/
function highlight_js_init() {
// 投稿ページのみ
if (is_single()) {
// Call highlightAll on page load
echo '<script>document.addEventListener("DOMContentLoaded", function() { hljs.highlightAll(); });</script>';
}
}
add_action('wp_footer', 'highlight_js_init');
highlight.jsは、ver10.6以降を使う場合は「initHighlightingOnLoad()」ではなく「highlightAll()」になりました。
これで、コアのコードブロックにソースを入力したら、フロント側(公開ページ)ではハイライトが反映されるようになりました。
