• 解決済 rinc6c

    (@rinc6c)


    Gutenbergの開発の勉強を行っています。
    JSXを用いて、プラグインにカスタムブロックを追加して試しているのですが、ページの編集画面でregisterBlockType関数のstylesで選択した内容がページの編集画面でリアルタイムで反映されません。
    公開したページには反映されています。
    以下がコードになります。

    import './style.editor.scss';
    import { __ } from '@wordpress/i18n';
    import { registerBlockType } from '@wordpress/blocks';
    import { RichText, useBlockProps, InspectorControls } from '@wordpress/block-editor'
    
    registerBlockType('broth-blocks/simple-text-block', {
      title: __('text block', 'broth-blocks'),
      icon: 'welcome-write-blog',
      category: 'broth-blocks',
      description: '勉強中のブロックです。',
      attributes: {
        myContent: {
          type: 'string',
          default: ''
        },
      },
      styles: [
        {
          name: 'default',
          label: '角丸',
          isDefault: true
        },
        {
          name: 'squared',
          label: '角丸なし'
        },
      ],
      edit: (props) => {
        const { attributes: { myContent }, setAttributes } = props;
        return (
          <div {...useBlockProps()} className="my-block-test">
            <InspectorControls />
            <RichText
              value={myContent}
              onChange={(newContent) => setAttributes({ myContent: newContent })}
              tagName='ol'
              multiline='li'
            />
          </div>
        )
      },
      save: (props) => {
        const { attributes: { myContent } } = props;
        return (
          <div className="my-block-test">
            <RichText.Content
              value={myContent}
              tagName='ol'
            />
          </div>
        )
      }
    })
    
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは。

    ページの編集画面でregisterBlockType関数のstylesで選択した内容がページの編集画面でリアルタイムで反映されません。

    こちらについて二点確認させていただきたいのですが、

    • ブロックを挿入した時に、ブロックサイドバーで「角丸」「角丸なし」を選択するUIは表示されますか?
    • いずれかのブロックスタイルを選択した時に、追加CSSに「is-style-xxx」というクラス名は追加されますか?

    ちなみに、RichTextコンポーネントの multiline prop は現在非推奨です。少し高度な内容になるかもしれませんが、InnerBlocks を使う方法が現在推奨される方法です。

    https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/#using-a-react-hook

    トピック投稿者 rinc6c

    (@rinc6c)

    ご回答いただきありがとうございます。

    ブロックを挿入した時に、ブロックサイドバーで「角丸」「角丸なし」を選択するUIは表示されますか?

    こちらに関しては表示されています。

    いずれかのブロックスタイルを選択した時に、追加CSSに「is-style-xxx」というクラス名は追加されますか?

    公開ページではクラス名が追加されるのですが、編集ページでは追加されないです。

    お教えいただいたInnerBlocksを使用してみます。
    大変参考になりました。
    ありがとうございます。

    apiVersion は指定していますか?どういう方式でブロックを登録しているのか分かりませんが、resiterBlockType もしくは block.jsonapiVersion: 3 を追加してみてはどうでしょうか。

    トピック投稿者 rinc6c

    (@rinc6c)

    ご返信ありがとうございます。
    block.json、edit.js、save.js、index.jsのようにファイルを分割し、registerBlockStyleで設定したところ上手くいきました。

    この度は本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ブロックエディタGutenbergのプラグインについて」には新たに返信することはできません。