对于WP Gutenberg Blocks,如何解析,循环和删除特定的块,然后在嵌入对象仍在工作的情况下输出块的the_content?

问题描述

在模板中,我经常将内容分为不同的部分。我想拥有的功能是让一个块包装器将所有块保留在页面底部,而另一个将所有块保留在页面顶部。这对于CTA区域以及从全宽切换到容器宽的主题也很有用。

我知道如何从the_content中调用我的容器块并将其放在主题中所需的位置,但是我仍然需要将该块从主内容循环中移出,这样它就不会在页面显示两次。我也知道该怎么做,但是问题是我的解决方案停止了嵌入块(例如Youtube)的工作。这些块仅输出视频的URL,而不输出视频本身。这是我的做法:

//If single block exists on page or post don't show it with the other blocks
function remove_blocks() {
    // Check if we're inside the main loop in a post or page.
  if ( ( is_single() || is_page() ) && in_the_loop() && is_main_query() ) {
        $blocks = parse_blocks( get_the_content() );
        foreach ( $blocks as $block ) {
        if ( 'lazyblock/top-of-page' === $block['blockName'] ) {
            continue; //skip past this block
        } else {
            echo render_block( $block ); //rendering like this screws up Embed Blocks??
        }
     }
   }
}
add_filter( 'the_content','remove_blocks');

任何帮助将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)