将Gutenberg Parse_BLOCKS函数与ACF自定义块一起使用?

时间:2019-04-11 作者:user9664977

我正在尝试将定制ACF古腾堡积木与立柱上的其他核心积木分开。目前我正在使用the_content(); 这抓住了古腾堡编辑的每一块。我现在要做的是查看古腾堡编辑器中的所有块,检查它们是否是自定义ACF块,如果它们是ACF块,则将其输出到其他块,不要输出该块。我目前拥有的是:

$blocks = parse_blocks( get_the_content() );
foreach ( $blocks as $block ) {
    if ( \'acf/qd-center-copy\' === $block[\'blockName\'] ) {
      echo $block[\'innerHTML\'];
    }
}
因此,上述函数所做的是在Gutenberg编辑器中遍历块,检查块名是否为“acf/qd center copy”,如果块名等于“acf/qd center copy”,则输出该块。我遇到的问题是该块的输出,我不确定需要做什么才能正确输出自定义ACF块。

以下是我使用时为块名为“acf/qd center copy”的块输出的内容print_r($block):

 Array
(
    [blockName] => acf/qd-center-copy
    [attrs] => Array
        (
            [id] => block_5caf50e1cda63
            [data] => Array
                (
                    [qd_background_color_toggle] => 1
                    [_qd_background_color_toggle] => field_5c700fe8bb525
                    [qd_headline] => Test Centered Text block
                    [_qd_headline] => field_5c70100ebb526
                    [qd_content] => Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
                    [_qd_content] => field_5c70101dbb527
                    [qd_additional_column_toggle] => 0
                    [_qd_additional_column_toggle] => field_5c701034bb528
                )

            [name] => acf/qd-center-copy
            [align] => 
            [mode] => auto
        )

    [innerBlocks] => Array
        (
        )

    [innerHTML] => 
    [innerContent] => Array
        (
        )

)

1 个回复
SO网友:Maggie Sadler

尝试使用下面的代码显示块的html。我找到了解决方案here.

render_block( $block )

相关推荐

在Posts2Posts的“parse_Query”或“PRE_GET_POST”中使用WP_QUERY

UPDATE: 钩子正在使用“经典”Wordpress过滤器(如post__in), 所以这可能是Posts2Posts的问题。如果有人有任何想法,我仍在寻求建议。ORIGINAL POST我正在尝试在归档页面中按问题编号显示所有帖子。问题是一种自定义的帖子类型(与post2post链接,这就是我使用parse_query 而不是pre_get_post)<?php function categories_by_issue ($query) { if (!