WordPress Gutenberg,以编程方式更新帖子内容

时间:2018-11-12 22:16:48

标签: wordpress wordpress-gutenberg gutenberg-blocks

我已经开始使用ACF和自定义块来测试Gutenberg编辑器。而且我一直在四处寻找解决问题的方法,但找不到任何与此主题相关的信息(也许我的Google技能不够好)

但是我的情况是这样的: 我有一个自定义帖子类型,我想在其中设置模板,这样它们就不能在块周围移动并添加其他块,依此类推。在此帖子类型中,大约70%是由代码创建的。因为它正在从API中获取所有信息。

测试1:我已经创建了一个包含所有所需字段的ACF块,并且在我从WP admin创建新帖子时,它正在按预期方式工作。但是,当我运行update_field函数时,它像以前一样将其保存到post_meta表中。因此,我的问题是如何更新字段,以便将其保存到post_content而不是post_meta表中。

测试2:我为所有字段创建了自定义块(将每个ACF字段转换为和块),并将模板设置为仅使用这些块。 但是这里我不知道如何使用PHP或Javascript更新post_content

我希望您能帮我解决这个问题:)如果有任何不清楚的地方,请尝试解释

2 个答案:

答案 0 :(得分:1)

ACF可以在帖子创建页面上的用户可见之前预先初始化字段。您可以尝试使用此功能将所需的内容设置为字段。

您可以在此处阅读以下内容: https://www.advancedcustomfields.com/resources/acf-prepare_field/

答案 1 :(得分:0)

截至 Wordpress 5.0.0

您可以在注册自定义帖子类型时使用 templatetemplate_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 仍在开发中,某些功能无法正常运行。