检查POST_CONTENT中有哪些Gutenberg块

时间:2018-08-02 作者:Jeffrey von Grumbkow

如果某个古腾堡积木出现在页面上,我正在设计一种具有不同风格的设计。换句话说,如果第一个块是自定义构建的Gutenberg块,则post\\u标题将根据所做的设计选择在其他地方呈现。

WordPress中是否有任何函数可以获取post\\u内容中存在的所有Gutenberg块的列表?

3 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

WordPress 5.0+具有以下功能:parse_blocks(). 要查看帖子中的第一个块是否为标题块,请执行以下操作:

$post = get_post(); 

if ( has_blocks( $post->post_content ) ) {
    $blocks = parse_blocks( $post->post_content );

    if ( $blocks[0][\'blockName\'] === \'core/heading\' ) {
    }
}

SO网友:Jeffrey von Grumbkow

我在写作时使用的解决方案是检查Gutenberg HTML注释的post\\u内容。由于古腾堡未来的变化,这在未来可能行不通。

<?php    
$post_content = get_the_content( get_the_ID() ); // Get the post_content
preg_match_all(\'<!-- /wp:(.*?) -->\', $post_content, $blocks); // Get all matches in between <!-- /wp: --> strings

// $blocks[1] contains the names of all the blocks present in the post_content
if ( in_array( \'heading\', $blocks[1] ) ) {
    // Post content contains a wp:heading block
}
else {
    // Post content does not contain a wp:heading block
}

SO网友:ian-hoyte

自5.0发布以来,这些功能已被弃用,Gutenberg现已集成到核心中。我可以想象,但尚未确认古腾堡独立插件中是否仍存在这些功能。

而不是gutenberg_content_has_blocks 使用has_blocks

而不是gutenberg_parse_blocks 使用parse_blocks

结束

相关推荐