我想在Gutenberg块中添加一个包装div,这样我就可以进行全角图像和其他自定义ACF块之类的操作。我在WP文档中找到了这一点:
function block_wrap_filter( $block_content, $block ) {
if ( empty( trim( $block_content ) ) ) {
return $block_content;
}
$blockid = $block['id'];
echo $blockid;
return sprintf(
'<section class="outer-%1$s"><div class="inner">%2$s</div></section>',
sanitize_title( $block['blockName'] ),
$block_content
);
}
add_filter( 'render_block', 'block_wrap_filter', 10, 2 );
这很好用,除了将包装器应用于嵌套块的事实。无论如何,有没有过滤它,所以它不适用于其他块中的块?
我一直在查看是否有任何钩子,或者$ block var是否将其自身列为孩子或其他任何东西,但看不到我可以在其中使用的任何东西。
我想也许我可以获取块的ID,然后查看孩子是否具有相关ID,那么我可以使用某种php if语句来包装过滤器。但是我无法获得$ block来提供ID。