所以我在Wordpress Gutenberg中使用嵌套块。我正在对应用引导容器类的元素应用包装器。显然,我只希望在最外层的块上,而不是在嵌套块内的块上。
有没有办法知道当前块是否在InnerBlocks
父块的Definiton内?我当前在包装器内应用包装blocks.getSaveElement
器。
有一个更好的方法吗?
对于上下文:在以前的gutenberg版本中,以前是layout属性来实现的,但此后已被删除。我正在使用3.9.0版。
这是包装函数的简化版本:
namespace.saveElement = ( element, blockType, attributes ) => {
const hasBootstrapWrapper = hasBlockSupport( blockType.name, 'bootstrapWrapper' );
if (hasBlockSupport( blockType.name, 'anchor' )) {
element.props.id = attributes.anchor;
}
if (hasBootstrapWrapper) {
// HERE I NEED TO CHECK IF THE CURRENT ELEMENT IS INSIDE A INNERBLOCKS ELEMENT AND THEN APPLY DIFFERENT WRAPPER
var setWrapperInnerClass = wrapperInnerClass;
var setWrapperClass = wrapperClass;
if (attributes.containerSize) {
setWrapperInnerClass = wrapperInnerClass + ' ' + attributes.containerSize;
}
if (attributes.wrapperType) {
setWrapperClass = wrapperClass + ' ' + attributes.wrapperType;
}
const setWrapperAnchor = (attributes.wrapperAnchor) ? attributes.wrapperAnchor : false;
return (
newEl('div', { key: wrapperClass, className: setWrapperClass, id: setWrapperAnchor},
newEl('div', { key: wrapperInnerClass, className: setWrapperInnerClass},
element
)
)
);
} else {
return element;
}
};
wp.hooks.addFilter('blocks.getSaveElement', 'namespace/gutenberg', namespace.saveElement);
你有没有发现?
—
马修·布朗又名马特勋爵,