使用 wp_insert_post() 时如何在 post_content 中插入古腾堡块?

Oli*_*ier 5 php wordpress wordpress-gutenberg gutenberg-blocks

我想在 php 中生成一个古腾堡块。

我目前正在开发一个 wordpress 插件,可以从 youtube 导入视频并为每个视频创建一个帖子。我可以在 post_content 中插入 youtube 视频,但是当我使用古腾堡编辑器编辑帖子时,它不会显示为块。

我在这里阅读了大部分“块编辑器手册” https://developer.wordpress.org/block-editor/ 但除了如何创建自定义块之外,我找不到任何东西。我也在谷歌上搜索过,但我发现的一切也是关于创建自定义块。然而我发现古腾堡块作为 html 评论存储在 post_content 中,但该评论似乎是通过古腾堡所见即所得编辑器用 js 生成的。

我知道我可以用块创建一个帖子并从我的数据库中复制 post_content 然后将其用作“模板”,但我认为这不是一种正确的方法。

是否有任何关于使用 wordpress 附带的块(即:嵌入、段落)并生成 html 评论的文档,该评论保存在 post_content 与 php 中?甚至有可能吗?

小智 4

当您手动添加 YouTube 块时,请单击“工具与选项”菜单(右侧)中的“代码编辑器”视图。在代码编辑器视图中,您将看到编辑器正确解析块所需的 HTML。

例如:

<!-- wp:core-embed/youtube {"url":"https://www.youtube.com/watch?v=VIDEOID","type":"video","providerNameSlug":"youtube","className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"} -->
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
https://www.youtube.com/watch?v=VIDEOID
</div></figure>
<!-- /wp:core-embed/youtube -->
Run Code Online (Sandbox Code Playgroud)