我相信你做不到。无论如何,这并不容易。我很高兴被纠正,但这是我对问题的理解:
块可以通过多种方式存储其属性。它们可以作为JSON存储在块注释中,如下面的示例the documentation:
<!-- wp:latest-posts {"postsToShow":4,"displayPostDate":true} /-->
这些属性在PHP中可能是可访问的,因为它们可以用
parse_blocks()
.
但是,大多数其他块(包括图像块)都是通过解析HTML来重建其属性的。在另一个示例中,块注释中未指定任何属性。只有最后的HTML:
<!-- wp:image -->
<figure class="wp-block-image"><img src="source.jpg" alt="" /></figure>
<!-- /wp:image -->
对于这样的块,属性是从HTML重建的。执行此操作的逻辑仅在块中可用。json,如下所示:
"url": {
"type": "string",
"source": "attribute",
"selector": "img",
"attribute": "src"
},
"alt": {
"type": "string",
"source": "attribute",
"selector": "img",
"attribute": "alt",
"default": ""
},
这告诉街区
alt
属性可以通过查找
alt
的属性
img
块中的标记
url
属性可以通过查看
src
属性可以查看查找块属性的一些方法
here.
在您的示例中,您会注意到您有权访问的属性是没有存储在块的HTML中的值。
因此,对于许多块,重构属性以进行编辑/修改的逻辑仅在该块的JavaScript中定义。这种逻辑在PHP中不存在。
如果需要从PHP访问这些属性,则需要自己从HTML中解析它们。每个块的逻辑都不同。