簡體   English   中英

如果塊是嵌套的(遞歸),如何通過 blockName 查找古騰堡塊

[英]How to find a gutenberg block by blockName if blocks are nested (recursively)

我需要從 ACF Gutenberg 塊中獲取一些數據,但它嵌套在嵌套塊中,所以

<?php
$blocks = parse_blocks( $pid->post_content );
foreach ( $blocks as $block ) {
    if ( $block['blockName'] === 'acf/your-block-name' ) {
        //do something
    }
}

不管用。

您需要創建一個遞歸 function。 代碼將如下所示:

<?php
$blocks = parse_blocks($pid->post_content);
foreach ($blocks as $block) {
    $myAcfBlock = getMyAcfBlock($block);
    if($myAcfBlock){
        //do something
    }
}

function getMyAcfBlock($blockObject)
{
    if ($blockObject['blockName'] === 'acf/your-block-name') {
        return $blockObject;
    }
    if (!empty($blockObject['innerBlocks'])) {
        foreach ($blockObject['innerBlocks'] as $innerBlock) {
            $innerBlockObject = getLandigFormBlock($innerBlock);
            if ($innerBlockObject) {
                return $innerBlockObject;
            }
        }
    }
    return false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM