ブロックエディタ(Gutenberg)の編集画面にeditor-style.cssを読み込ませる方法【WordPress】

2021年8月13日2022年5月2日

以前にワードプレスの旧エディタ向けのeditor-style.cssの設置・適用方法の記事を書いたことがありました。私も毎回忘れてググっていますので、そろそろブロックエディタ(Gutenberg)向けの方法をまとめて記事にしておこうと思います。

という事で今回は、ワードプレスVer5.0以降の標準エディター、いわゆるブロックエディタを使用した編集画面に専用のCSSを読み込ませる方法です。

Classic Editorプラグインを使用して旧エディターを使用している方や、Ver4系以前のWordPressで運用している方は、以前の記事(WordPressでオリジナルのeditor-style.cssを設置・適用する方法【子テーマ対応】)を参考にしてみてください。

ブロックエディターを使用した編集画面にCSSを読み込ませるサンプルコード

旧エディタ―では、add_editor_style関数を使用しましたが、ブロックエディターの場合は今のところ、add_editor_styleのような専用の関数は無いようです。そこで、”enqueue_block_editor_assets”というアクションフックに、CSSを適用するための関数を登録してやります。

余談ですが、記事のタイトルではeditor-style.cssと書きましたが、add_editor_style関数のデフォルトのCSS名がeditor-style.cssだっただけで、ブロックエディターの場合はファイル名は何でも構いません。

以下がサンプルコードです。特にファイル分けなどを行っていない場合は、無難にfunctions.phpに追記するのが良いでしょう。

関数名をwt_add_block_editor_styleとしていますが、”wt”は関数名が他とかぶってしまうのを避けるために、このブログのテーマ名の略をくっつけているだけです。そのうち追加されそうな気もするんですよね。add_block_editor_styleって関数が。。
”wt”はテーマ名などに変えるとテーマ制作者風でカッコいいんじゃないかと思います(笑)wp_enqueue_style関数の第1パラメータも同様です。

特定の投稿タイプや特定のページの編集画面にだけCSSを読み込ませたい場合

ブロックエディター用CSSを追加するための基本的なコードは前節の通りですが、実際には「特定の投稿の編集画面だけ」や「特定の投稿タイプだけ」、「固定ページだけ」なんて場合が多いのではないでしょうか。

そこで次は、編集中のページによってブロックエディターのCSSを変えたり、特定のページの編集画面にだけCSSを読み込ませる場合のサンプルコードです。

一応仕組みを書いておきますと、$postの中にはページの情報が色々入っていますので、これを利用して現在の編集画面を判定します。

投稿タイプによってブロックエディター用CSSを変更する場合

わかりやすく書くために、しつこく色々なパターンを載せましたが、例えば固定ページの編集画面だけにブロックエディター用CSSを読み込ませたい場合は、以下のように書けばOKです。

固定ページの編集画面にだけCSSを読み込ませる場合

同じ要領で、「投稿だけ」や「特定のカスタム投稿タイプだけ」といった事も可能ですね。

特定の投稿/ページの編集画面にだけCSSを読み込ませる場合

あまりないかもしれませんが、次は特定の投稿/ページの編集画面にだけCSSを読み込ませる場合です。

最後に

ちょっと思ったんですが、昔は管理画面で$postって取得できなかったような気がするんですが、私の勘違いですかね。勘違いなんだろな。。

ま、それはいいとして、ちゃんと思い通りに編集画面用CSSを読み込ませられたでしょうか。ブロックエディター内は、サイト上とHTML構成が違いますので、そのままCSSをコピーしてもうまくいきません。編集画面でブラウザの開発者ツールを開いてHTML構成を確認してみると良いと思います。

以上、ブロックエディターを使用した編集画面にCSSを読み込ませる方法でした~。

One Reply to “ブロックエディタ(Gutenberg)の編集画面にeditor-style.cssを読み込ませる方法【WordPress】”

Comments are closed for this post.

関連のある記事

WordPressでオリジナルのeditor-style.cssを設置・適用する方法【子テーマ対応】

WordPressでオリジナルのeditor-style.cssを設置・適用する方法【子テーマ対応】

記事を読む

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

目次へ