この記事は最終更新日から2年以上経過しています。

Gutenberg InnerBlocks 入れ子のブロックを作る

公開日:

更新日:

スタッフブログ

こんにちは。ましじめの田村です。

Gutenbergで入れ子のブロックを作りたい場合がありました。
a-blog cmsで言う所のカスタムユニットグループの枠といったところでしょうか。

マニュアルを確認してみると次の方法で作成可能でした。
Nested Blocks

基本はこちら

import { InnerBlocks } from '@wordpress/block-editor';

edit :
 <InnerBlocks />

save: 
<InnerBlocks.Content />

入れ子にしたいブロックを指定できる。

入れ子の要素は「テキスト」と「画像」だけにしたいなど可能です。

const ALLOWED_BLOCKS = [ 'core/image', 'core/paragraph' ];
<InnerBlocks
    allowedBlocks={ ALLOWED_BLOCKS }
/>

選択時の入れ子の初期表示を指定できる。

入れ子の要素を選択した時「テキスト + 画像」などを準備した形にできます。
templates

    const BLOCKS_TEMPLATE = [
      ['core/image', {}],
      ['core/paragraph', { placeholder: 'Image Details' }],
    ];

<InnerBlocks template={BLOCKS_TEMPLATE} templateLock={all} />

特定の親ブロックから呼び出せる子ブロックを指定できる。

グリッドでrowcolのような関係のでしょうか、
親が「rowブロック」である場合だけ「colブロック」という形で作成可能です。

const settings = {
    title: __( 'Column' ),
    parent: [ 'core/columns' ],
    .
    .
    .

以上「Gutenberg InnerBlocks 入れ子のブロックを作る」でした。
Gutenbergで入れ子のブロックを作る場合参考にしてみてください。

この記事をシェアする

関連記事

この記事のハッシュタグ #Gutenberg から関連する記事を表示しています。

Gutenberg registerBlockStyle 標準のブロックにスタイルを追加する

こんにちは。ましじめの田村です。 Gutenbergで標準のブロックにスタイルを追加したい場合はありました。 この場合次の記述で実現可能です。 マニュアルはこちら。 block-filters 基本はこちら const { blocks } = wp; const { registerBlockStyle } = blocks; const __ = Drupal.t; registerBlockStyle( 'core/quote', { name: 'fancy-quote', label: 'Fancy Quote' } ); 設定値 name class名を設定します。設定した値は次のクラスとして書き出されます。 .is-style-{name} label 表示名 isDefault デフォルトとして設定するかどうか? また複数設定したい場合は次のようにすると良さそうです。 function myRegisterStyles() { ['core/paragraph'].forEach((block) =&gt; { registerBlockStyle(block, { name: 'type1', label: __('タイプ1'), isDefault: true, }); registerBlockStyle(block, { name: 'type1', label: __('タイプ2'), isDefault: false, }); registerBlockStyle(block, { name: 'type3', label: __('タイプ3'), isDefault: false, }); }); } myRegisterStyles(); 表示 以上「Gutenberg registerBlockStyle 標準のブロックにスタイルを追加する」でした。 標準のブロックにスタイルを追加したい場合参考にしてみてください。

スタッフブログ

Drupal Gutenberg のテーマサポートを設定する

こんにちは。ましじめの田村です。 Gutenbergのテキストブロックなどで指定できる標準のカラーピッカーを変更したい場合がありました。 この場合テーマサポートという機能を利用することで変更できるようです。 WordPressだとこのあたりが設定可能でした。 - Editor Color Palette - Editor Text Size Palette - Responsive Embeds - Frontend &amp; Editor Styles - Dark Mode theme-support また、Drupal版も同じようにテーマサポートは利用できます。 しかし、全てではなく今の所次の設定が利用できるようです。 - Editor Color Palette - Editor Text Size Palette font size custom palette 設定方法 使用しているテーマにyour_theme.gutenberg.ymlを作成して theme-supportで設定内容を記述します。 theme-support: colors: - slug: "black" name: "Black" color: "#000000" - slug: "white" name: "White" color: "#FFFFFF" - slug: "dark-midnight-blue" name: "Dark Midnight Blue" color: "#003366" fontSizes: - name: "Small" size: 12 slug: "small" - name: "Medium" size: 14 slug: "medium" その後編集画面をみてみると右側のカラーとフォントの設定は反映されると思います。 以上がDrupalのテーマ設定となります。 といった形でカラーとフォントサイズをサイトに合わせて変更することが可能です。 この辺りの設定を変更するだけでも使いやすくなりそうでね。 そして、issuesをみると「他の設定も使えた方がいいですよね。」 という話がされているようですので他の設定も追加される日も来るかもしれません。 試してみたい方はこちらにパッチがありましたので確認してみるのも良いかもです。 https://www.drupal.org/project/gutenberg/issues/3089943 Drupal Gutenberg のテーマサポートを設定する場合参考にしてみてください。

スタッフブログ