在另一个页面中渲染块时如何加载古腾堡块样式

How to load Gutenberg block styles when rendering blocks in another page

我想将一个 post 的古腾堡块内容加载到自定义模板中。

两种方法我都试过了

首先渲染 post 内容:

$args = array(
       'post_type' => 'page',
       'id' => $post_id
   );

   $your_query = new WP_Query( $args );
   while ( $your_query->have_posts() ) : $your_query->the_post();
       the_content();
   endwhile;

我也试过单独渲染每个块

$post = get_post($post_id); 
$blocks = parse_blocks($post->post_content);
    
foreach ($blocks as $block) {
    echo render_block($block);
}

在这两种情况下,它都呈现古腾堡内容,但不呈现相关样式。

在原始页面中,既有古腾堡块,也有古腾堡内联样式。 有没有办法在另一个页面中呈现块和块样式

使用 do_blocks() 以便调用 post 内容中的块渲染方法,并根据需要在自定义 post 模板中排队前端样式,例如:

$post = get_post($post_id); 
echo do_blocks($post->post_content);

要确认样式 sheet 是否已排队等待加载,请使用:

global $wp_styles;

if ( $wp_styles->queue ){
    // Print out a list of all the currently enqueued styles
    echo '<pre>', print_r( $wp_styles->queue ), '</pre>';
}