我正在尝试创建一个新的组块,其中包括一个core/heading
阻止,然后阻止core/gallery
块我不希望编辑器能够向组中添加其他内部块。我也不希望编辑器能够删除标题或库块。
以下是迄今为止我的区块变化:
wp.blocks.registerBlockVariation("core/group", {
name: "logo-grid",
title: "Logo Grid",
description: "",
category: "media",
icon: "smiley",
scope: ["inserter"],
attributes: {
},
innerBlocks: [
["core/heading", { level: 2, placeholder: "Heading" }],
["core/gallery"],
],
});
我已经调查过了
templateLock
和
template_lock
和
lock
属性,但似乎都不适用于块变化?
我意识到我可能使用了错误的工具,试图使用此功能创建块变体。对于如何实现我的目标,有什么建议吗?
SO网友:Cornelius
我想我已经弄明白了。我没有创建块变体,而是使用块模板创建了一个全新的块。
import { registerBlockType } from "@wordpress/blocks";
import { useBlockProps, InnerBlocks } from "@wordpress/block-editor";
const BLOCKS_TEMPLATE = [
["core/heading", { level: 2, placeholder: "Heading" }],
["core/gallery", {}],
];
registerBlockType("logo-grid", {
apiVersion: 2,
title: "Logo Grid",
icon: "smiley",
category: "media",
edit: () => {
return (
<div {...useBlockProps()}>
<InnerBlocks
orientation="horizontal"
template={BLOCKS_TEMPLATE}
templateLock="all"
/>
</div>
);
},
save: () => {
return (
<div {...useBlockProps.save()}>
<InnerBlocks.Content />
</div>
);
},
});