编辑:WordPress 5.9或更高版本。
WordPress 5.9将slotfill移到useDisplayBlockControls
钩子,防止填充注册,除非它们位于当前选定块的组件内。无法再使用BlockControls
用于向WordPress核心块的工具栏添加元素的slotfill。
原文:WordPress 5.8.3或更低版本。
有一个未记录的slotfill 在名为BlockControls
它允许您在块工具栏中包含自定义按钮或元素。组件为documented, 但不是在slotfills内部。
在插槽中添加控件最直接的方法是使用<ToolbarButton>
component 这是道具。不过,您可以将任何喜欢的元素放入插槽中。
有一个<ToolbarItem>
component 为自定义元素提供帮助。
您可以通过useSelect
hook 并返回null
如果未选择正确的块。
把它们放在一起。
const Download = () => {
const selectedBlock = useSelect( select => {
return select( \'core/block-editor\' ).getSelectedBlock();
}, [] );
if ( selectedBlock && selectedBlock.name !== \'core/image\' ) {
return null;
}
return (
<BlockControls>
<ToolbarButton
icon={\'download\'}
label="Download"
onClick={() => alert( selectedBlock?.attributes?.url )}
/>
</BlockControls>
);
};