允许的内部数据块不使用ACF_REGISTER_BLOCK

时间:2020-05-29 作者:Leathel

我使用InnerBlocks标记在自定义块中允许嵌套块。我试图使用“allowedBlocks”参数来限制只允许特定的块。但是,如果我在InnerBlocks标记中放入任何内容,则块不会加载,只会旋转。

我正在使用acf\\u register\\u block作为我的区块注册表,因为我们所做的工作与acf紧密相关。我已启用\'__experimental_jsx\' => true 在我工作的所有街区。

这很有效

<div>
    <InnerBlocks />
</div>
这不起作用

<div>
    <InnerBlocks allowedBlocks={ \'acf/orange-carousel\' } />
</div>
如果我为允许的块传递一个数组而不是一个字符串,那么它也不起作用。

我正在使用ACF Pro Beta 5.9

感谢您的帮助!

2 个回复
SO网友:dowen121

虽然回复很晚,但我想我会加入一个对我有用的片段。

使现代化$allowed_inner_blocks 用你自己的;block\\u类型“;并将以下代码放置在父块模板中;

<?php $allowed_inner_blocks = [\'acf/logos\']; ?>
<InnerBlocks allowedBlocks="<?php echo esc_attr(wp_json_encode($allowed_inner_blocks)); ?>" />

SO网友:Garrett

acf 正确的命名空间?如果是这样,这应该在编辑功能中起作用。

const ALLOWED_BLOCKS = [
    \'acf/orange-carousel\',
]

return (
    <div className={className}>
        <InnerBlocks
            allowedBlocks={ ALLOWED_BLOCKS }
        />
    </div>
);