如何使用多个 foreach 语句在帖子内容中查找嵌套块?

问题描述

我正在 wordpress 中创建一个自定义的古腾堡块,我需要在使用时在帖子内容中找到该块。如果块放置在组或列中,则 parse_blocks 函数不起作用。这个案例是一个非常不可能的案例,但我意识到它可能发生。有没有更有效的方法来找到隐藏块?

这是我正在使用的代码

    if ( has_blocks( $post->post_content ) ) {    
      $blocks = parse_blocks( $post->post_content );        
      foreach ( $blocks as $block ) {
      if ($block['blockName'] === MYBLOCKNAME ) {
      // DO SOMETHING
      }
      if ($block['innerBlocks']) {        
        foreach ($block['innerBlocks'] as $innerblock) {
          if ($innerblock['blockName'] === MYBLOCKNAME ) {     
          // DO SOMETHING
          }          
          if ($innerblock['innerBlocks']) {
            foreach ($innerblock['innerBlocks'] as $innerblock2) {
              if ($innerblock2['blockName'] === MYBLOCKNAME ) {  
              // DO SOMETHING
              }
              if ($innerblock2['innerBlocks']) {
                foreach ($innerblock2['innerBlocks'] as $innerblock3) {
                  if ($innerblock3['blockName'] === MYBLOCKNAME ) {
                  // DO SOMETHING
                  }
                  if ($innerblock3['innerBlocks']) {
                  foreach ($innerblock3['innerBlocks'] as $innerblock4) {
                    if ($innerblock4['blockName'] === MYBLOCKNAME ) {
                    // DO SOMETHING
                    }
                    if ($innerblock4['innerBlocks']) {
                     foreach ($innerblock4['innerBlocks'] as $innerblock5) {
                      if ($innerblock5['blockName'] === MYBLOCKNAME ) {
                      // DO SOMETHING
                      }
                     }
                    }
                   }
                 }
                }
              }
            }
          }
        }
      }
      }
    }

解决方法

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

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

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