• 解決済 nfarc

    (@nfarc)


    現在、動的レンダリングによる、カスタムブロックを集めたプラグインを実装しており、
    その中で、InnerBlocksを使用しています。

    問題として、ビルド後にInnerBlocksのエリアに登録した内容が保存されない状態です。

    edit.js、index.jsのコードは、以下のようになっており、編集画面では正常に表示され、同一ブロックの画像の保存は問題なく保存されますが、InnerBlocksの登録内容のみ保存されない状態です。

    ##edit.js
    <div {...blockProps}>
    {markImage && (
    <img src={markImage} alt="" className="mark-image" />
    )}
    <div className="marked-box-content">
    <InnerBlocks
    allowedBlocks={['core/paragraph', 'core/image', 'core/list']}
    template={[['core/paragraph', { placeholder: 'ここにテキストを入力' }]]}
    />
    </div>
    </div>
    ##index.js
    registerBlockType(metadata.name, {
        edit: Edit,
        save: () => null,
    });

    表示画面ではなく、コードエディターでもデータが入っていないことを確認しています。

    ## InnerBlocksにデータを入れ、保存した後の、コードエディターでの状態
    <!-- wp:nf/marked-box /-->

    InnerBlocksで、動的レンダリングを使用する場合、他に設定など必要でしたでしょうか?

    ####################
    Versionなどは、以下を使用しています。
    WordPress 6.7.2
    npm 10.9.2

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは。なぜInnerBlocksを持つブロックをダイナミックブロックとして開発されているのかは分かりませんが、save関数がnullを返却している(データベースにInnerBlocksのHTMLを保存しない)からだと思います。

    トピック投稿者 nfarc

    (@nfarc)

    返信ありがとうございます。
    確かに、言われてみればその通りですね。

    元々、最新記事を取得して、表示した下部にコンテンツを入れることになったため、一つにしていましたが、切り離して静的ブロックで作成すれば良いですね。

    的確な指摘ありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「InnerBlocksの内容が保存できない」には新たに返信することはできません。