WordPress提供了一种获取页面块数组的方法parse_blocks() 作用如果从中提取出感兴趣的特定块,则可以使用render_block() 将块放在另一页上。此函数将执行以下操作:
function example_extract_block_type_from_page( $post_id, $block_name ) {
//get post_content for page
$post_content = get_post( $post_id )->post_content;
//get all blocks of requested type
$blocks = array_filter( parse_blocks( $post_content ), function( $block ) use( $block_name ) {
return $block_name === $block[\'blockName\'];
});
$block_content = \'\';
foreach( $blocks as $block ) {
$block_content .= render_block( $block );
}
return $block_content;
}
你没有在其他页面上说你想把推荐信放在哪里。如果它在主要帖子内容之外,那么您可以使用自定义模板和/或挂钩将其放置在您想要的地方。如果它位于帖子的主要内容中,那么自定义快捷码可能是最好的方法。
function example_extract_block_type_from_page_shortcode( $atts=[] ) {
$defaults = [
\'post_id\' => 0,
\'block_name\' => \'\'
];
$atts = shortcode_atts( $defaults, $atts );
return example_extract_block_type_from_page( $atts[\'post_id\'], $atts[\'block_name\'] );
}
add_shortcode( \'example_extract_block_type_from_page\', \'example_extract_block_type_from_page_shortcode\' );
然后像这样
[example_extract_block_type_from_page post_id="123" block_name="myblock"]
将显示相关的块内容。