我已经开始使用ACF和自定义块来测试Gutenberg编辑器。而且我一直在四处寻找解决问题的方法,但找不到任何与此主题相关的信息(也许我的Google技能不够好)
但是我的情况是这样的: 我有一个自定义帖子类型,我想在其中设置模板,这样它们就不能在块周围移动并添加其他块,依此类推。在此帖子类型中,大约70%是由代码创建的。因为它正在从API中获取所有信息。
测试1:我已经创建了一个包含所有所需字段的ACF块,并且在我从WP admin创建新帖子时,它正在按预期方式工作。但是,当我运行update_field
函数时,它像以前一样将其保存到post_meta表中。因此,我的问题是如何更新字段,以便将其保存到post_content
而不是post_meta
表中。
测试2:我为所有字段创建了自定义块(将每个ACF字段转换为和块),并将模板设置为仅使用这些块。
但是这里我不知道如何使用PHP或Javascript更新post_content
。
我希望您能帮我解决这个问题:)如果有任何不清楚的地方,请尝试解释
答案 0 :(得分:1)
ACF可以在帖子创建页面上的用户可见之前预先初始化字段。您可以尝试使用此功能将所需的内容设置为字段。
您可以在此处阅读以下内容: https://www.advancedcustomfields.com/resources/acf-prepare_field/
答案 1 :(得分:0)
5.0.0
您可以在注册自定义帖子类型时使用 template
和 template_lock
参数。
然后您可以设置要使用的特定块数组,并且您可以选择限制用户添加或删除新块。
属性 | 说明 |
---|---|
template |
(array) 用作编辑器会话默认初始状态的块数组。每个项目应该是一个包含块名称和可选属性的数组。 |
template_lock |
(string/false) 如果设置了 $template,块模板是否应该被锁定。如果设置为“全部”,则用户无法插入新块、移动现有块和删除块。如果设置为“插入”,用户可以移动现有块,但不能插入新块和删除块。默认为 false。 |
一个简短的例子是……
<?php
$args = [
//...
'template_lock' => 'all',
'template' => [
[ 'core/paragraph' ],
[ 'core/file' ],
//...
],
//...
];
register_post_type( $post_type, $args );
?>
目前,Gutenberg 文档稀缺,您可以找到完整的块和参数列表@https://github.com/WordPress/gutenberg/tree/master/packages/block-library/src
Gutenberg 仍在开发中,某些功能无法正常运行。