给定画廊 ID,我有一个生成画廊的简码。
function rb_scroll_gallery_shortcode( $atts, $content ) {
$a = shortcode_atts( array(
'id' => -1,
), $atts );
$gallery_ID = $a['id'];
$output = '';
if($gallery_ID != -1){
ob_start();
$gallery = new RB_Scroll_Gallery($gallery_ID);
$gallery->render();
$output = ob_get_clean();
}
return $output;
}
add_shortcode( 'rb_scroll_gallery', 'rb_scroll_gallery_shortcode' );
现在,我制作了一个在编辑器中完美运行的 Gutenberg 块。您可以选择一个画廊,它将保存。但是,我不想重复代码并将 html 放在 save 属性和 php 代码中。
所以我想知道是否有一种方法可以使用相同rb_scroll_gallery_shortcode
的函数在前端渲染块。
我已经看到您可以使用register_block_type
并将其设置render_callback
为rb_scroll_gallery_shortcode
,但我需要在块中选择的 ID 将其发送到$atts
数组中的函数
//This uses the shortcode funtion, but doesn't gives the gallery ID
register_block_type( 'cgb/block-rb-scroll-gallery-block', array(
'render_callback' => 'rb_scroll_gallery_shortcode',
) );