4

我已经开始使用 ACF 和自定义块测试 Gutenberg 编辑器。我一直在寻找解决我的问题,但我找不到关于这个话题的任何东西(也许我的谷歌技能不够好)

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

测试 1:我创建了一个 ACF 块,其中包含我需要的所有字段,当我从 WP 管理员创建新帖子时,它可以正常工作。但是当我运行该update_field函数时,它会像以前一样将其保存到 post_meta 表中。所以我的问题是如何更新一个字段,以便将其保存post_content到表中而不是post_meta表中。

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

我希望你能帮我解决这个问题:)如果有什么不清楚的地方告诉我,我会尽力解释

4

2 回答 2

1

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

你可以在这里阅读: https ://www.advancedcustomfields.com/resources/acf-prepare_field/

于 2019-02-12T10:52:15.150 回答
0

从 WordPress 开始5.0.0

您可以在注册自定义帖子类型时使用template和参数。template_lock

然后,您可以设置要使用的特定块数组,并且可以选择限制用户添加或删除新块。

属性 描述
template (数组)用作编辑器会话的默认初始状态的块数组。每个项目应该是一个包含块名称和可选属性的数组。
template_lock (string/false) 如果设置了 $template,块模板是否应该被锁定。如果设置为“全部”,则用户无法插入新块、移动现有块和删除块。如果设置为“插入”,用户可以移动现有块,但不能插入新块和删除块。默认假。

一个简短的例子将是类似的东西......

<?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 仍在开发中,某些功能无法发挥应有的作用。

于 2021-03-15T17:32:44.507 回答