সুতরাং আমি ওয়ার্ডপ্রেস গুটেনবার্গে নেস্টেড ব্লক ব্যবহার করছি। আমি আমার উপাদানগুলিতে একটি মোড়ক প্রয়োগ করছি যা বুটস্ট্র্যাপ ধারক শ্রেণীর প্রয়োগ করে। স্পষ্টতই আমি কেবল এটি চাই যে বাইরেরতম ব্লকগুলিতে, নেস্টেড ব্লকের ভিতরে থাকাগুলিতে নয়।
বর্তমান ব্লকটি InnerBlocks
প্যারেন্ট ব্লকের একটি ডেফিনিটনের ভিতরে আছে কিনা তা জানার কোনও উপায় আছে ? আমি বর্তমানে blocks.getSaveElement
ফিল্টারটির অভ্যন্তরে মোড়কটি প্রয়োগ করছি ।
এই কাজ করতে একটি ভাল উপায় আছে কি?
প্রসঙ্গে: পূর্ববর্তী গুটেনবার্গ সংস্করণগুলিতে এটি অর্জনের জন্য লেআউট বৈশিষ্ট্য ব্যবহৃত হত, তবে এটি সরিয়ে ফেলা হয়েছে। আমি সংস্করণ 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);