Gutenbergを使えば、個別のページごとにCSSやJavaScriptを超簡単に追加できる

最初にお断りしておきますが、この記事で紹介している「投稿の本文内にstyleタグを書く」手法は厳密には文法違反です。
(HTML5では、bodyの子要素であればstyleタグを書けるが、WordPressの投稿本文は孫要素になるので文法違反)

ただ、ほとんどのブラウザで動作するようですので「開発時の一時的なテスト」や「この方法しか手がない」時だけ使ってみてください。
なお、投稿の本文内にscriptタグを書くのは文法違反ではありませんが、ページの読み込みが遅くなったり、内容によっては脆弱性を生じるなどのデメリットがあります。

そのページだけにCSSやJSを追加したい

WordPressで記事を投稿する際、まれに、そのページだけに CSSやJavaScriptを追加したいことがあります。
技術記事でCSSやJavaScriptに関する投稿をしたときに、ちょっとしたデモを入れたい場合などです。

これまでは「Custom CSS and JS」などのプラグインを使って、カスタムフィールドからCSSやJavaScriptを追加するか、ビジュアル編集はあきらめて本文全体をHTMLで記述していたと思います。

それがなんと、WordPress 5.0 から導入されたエディタ「Gutenberg」を使えば、プラグイン無しで実現できるんです。

方法は簡単。
「カスタムHTMLブロック」を使います。
カスタムHTMLブロックはブロック内にHTMLが書けるので、styleタグでCSSを追加したり、scriptタグでJavaScriptが追加できるのです。
(ブロック内で開始タグと閉じタグが正確に対応していないと、閉じタグが自動補完されてHTMLが意図したものにならないので注意してください)

CSSを追加してみる

この投稿の先頭にある注意書きは、段落ブロックに「高度な設定」で追加CSSクラス「noticeblock」を指定し、カスタムHTMLブロックでCSSを追加しています。

カスタムHTMlブロックに、styleタグでCSSを記述

JavaScriptを追加してみる

ボタンをクリックしたら画像が開閉するアコーディオンのJavaScriptを追加してみます。

ボタンに追加CSSクラス「accordionbtn」を、画像に追加CSSクラス「accordionbtnblock」を指定し、カスタムHTMLブロックにJavaScriptを書きます。


カスタムHTMlブロックに、scriptタグでjavaScriptを記述

まとめ

Gutenbergの「カスタムHTMLブロック」は、ビジュアルエディタの中に一部分だけHTMLを書くことができますので、ビジュアル編集の使いやすさを損なわずにHTMLによる高度な編集を行うことができます。
また、テーマを修正する権限がない投稿者がCSSやJavaScriptを追加したいときに使えそうです。

ただ、最初にも書きましたが、本文内にCSSを書くのは文法違反です。

また、JavaScriptの内容によっては脆弱性を生じる危険もあります。

あくまでも「開発時のテスト」や「ほかに手段のないとき」時に、十分注意して使ってください。

この記事を書いた人

川井 昌彦
川井 昌彦
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き

1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Vektor Passport(ライセンス期間1年)
VK Filter Search Pro
Vektor WordPress Solutions
PAGE TOP