Quindi sto usando blocchi nidificati in Wordpress Gutenberg. Sto applicando un wrapper sui miei elementi che applicano una classe contenitore bootstrap. Ovviamente lo vorrei solo sui blocchi più esterni, non su quelli all'interno di un blocco nidificato.
C'è un modo per sapere se il blocco corrente è all'interno di un InnerBlocks
Definiton di un blocco genitore? Attualmente sto applicando il wrapper all'interno del blocks.getSaveElement
filtro.
C'è un modo migliore per farlo?
Per il contesto: nelle precedenti versioni di gutenberg c'era l'attributo layout per raggiungere questo obiettivo, ma da allora è stato rimosso. Sto usando la versione 3.9.0.
Questa è una versione abbreviata della mia funzione wrapper:
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);