如果某个古腾堡积木出现在页面上,我正在设计一种具有不同风格的设计。换句话说,如果第一个块是自定义构建的Gutenberg块,则post\\u标题将根据所做的设计选择在其他地方呈现。
WordPress中是否有任何函数可以获取post\\u内容中存在的所有Gutenberg块的列表?
如果某个古腾堡积木出现在页面上,我正在设计一种具有不同风格的设计。换句话说,如果第一个块是自定义构建的Gutenberg块,则post\\u标题将根据所做的设计选择在其他地方呈现。
WordPress中是否有任何函数可以获取post\\u内容中存在的所有Gutenberg块的列表?
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\' ) {
}
}
我在写作时使用的解决方案是检查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
}
自5.0发布以来,这些功能已被弃用,Gutenberg现已集成到核心中。我可以想象,但尚未确认古腾堡独立插件中是否仍存在这些功能。
而不是gutenberg_content_has_blocks
使用has_blocks
而不是gutenberg_parse_blocks
使用parse_blocks