#1 楼
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' ) {
}
}
评论
谢谢!我找不到此功能。有趣的是,我的自定义代码基本上可以完成相同的操作,但是代码却少得多!无论如何,标记为已接受,因为它是正确的内置函数。
– Jeffrey von Grumbkow
18年8月2日在11:36
该函数已被弃用(但仅重命名),而应使用has_blocks($ blockName)代替:github.com/WordPress/gutenberg/pull/8631/commits/…。还有has_block()(不带“ s”)。
– Nico Prat
18年11月12日在9:16
@NicoPrat我们已经更新了答案以反映正确的方法
– Jeffrey von Grumbkow
18/12/10在15:24
请记住,当parse_blocks()返回不存在的块作为NULL数组元素时,存在一个已知问题-core.trac.wordpress.org/ticket/45312
–李
19年4月18日在13:34
developer.wordpress.org/reference/functions/parse_blocks :)
–bbeecher
20 Apr 15'0:13
#2 楼
我在撰写本文时使用的解决方案请检查Gutenberg HTML注释的post_content。由于将来发生古腾堡(Gutenberg)更改,因此将来可能无法使用。#3 楼
从5.0版本开始,已经将Gutenberg集成到核心中,不再使用这些功能。我想,但尚未确认这些功能仍然存在于Gutenberg独立插件中。评论
@JeffreyvonGrumbkow的事情是,ian-hoyte必须以低代表的身份进行编辑或评论=)
–honk31
19 Mar 4 '19在16:11
评论
有一个网站whichblocks.com当您键入网页URL时,它将扫描页面并找出页面中使用了哪些gutenberg块。