Gutenbergのブロックエディタをカスタムする場合、WordPress公式のチュートリアル見るとプラグイン作成になるようです。Githubから作成自体は簡単だったのですが、カスタマイズまでの学習コストが高めの印象でした。
今回は、もう少し手を軽めにしたスタイルの追加。これだと functions.phpにちょっと記載、css+JSで追加で実装可能です。
カスタムファイルを読み込む
エディター側とフロント側、それぞれにJSとCSSを当てることでカスタムできるようになります。
今回は関数名でわかりやすく、エディタ側をadd_my_block_editor()
、ページ側をadd_my_block_editor_front()
としました。
編集画面のエディタ側では、enqueue_block_editor_assets()
というアクションフックを呼び出し、ページ(フロント)側では、wp_enqueue_scripts()
というフックを呼び出して、JSとCSSを読み込みます。
//エディター側
function add_my_block_editor() {
wp_enqueue_style(
'block-style',
get_template_directory_uri() . '/hoge/my_block_style.css',//CSSのパス
array( ),
'1.0.0'
);
wp_enqueue_script(
'block-script',
get_template_directory_uri() . '/hoge/my_block_custom.js',//JSのパス
array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post' ),
'1.0.0',
true
);
}
add_action( 'enqueue_block_editor_assets', 'add_my_block_editor' );
//フロント側
function add_my_block_editor_front() {
wp_enqueue_style(
'block-style',
get_template_directory_uri() . '/hoge/my_block_style.css',//CSSのパス
array(),
'1.0.0'
);
wp_enqueue_script(
'block-script',
get_template_directory_uri() . '/hoge/my_block_custom.js',//JSのパス
array(),
'1.0.0',
true
);
}
add_action('wp_enqueue_scripts', 'add_my_block_editor_front');
JSでカスタムブロックを登録
my_block_custom.jsの中にregisterBlockStyle()
の関数でブロックを追加していきます。
例えば、段落(core/paragraph)にfansyというスタイルを当てるには、以下のようになります。 Extending the Block Editor 。
wp.blocks.registerBlockStyle('core/paragraph', {
name: 'fuga',//クラス名
label: 'ふがふが'//ラベル名
});
スタイルブロック非表示の場合
既にあるブロックのスタイルを消す場合は、unregisterBlockStyle()
関数で消せます。
wp.domReady(function () {
wp.blocks.unregisterBlockStyle('core/quote', 'large');
});
CSSでスタイル付け
CSSで指定するときのクラス名は、JSで新しく追加したブロックのname.is-style-{name名}
で指定できます。
.is-style-fuga{
border: 1px dotted #CCC;
padding:1rem;
}