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

Posted

技术标签:

【中文标题】WordPress Gutenberg,以编程方式更新帖子内容【英文标题】:WordPress Gutenberg, update post content programmatically 【发布时间】:2019-04-15 16:32:37 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

截至 Wordpress 5.0.0

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

来源@https://developer.wordpress.org/reference/functions/register_post_type/#changelog

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

Attribute Description
template (array) Array of blocks to use as the default initial state for an editor session. Each item should be an array containing block name and optional attributes.
template_lock (string/false) Whether the block template should be locked if $template is set. If set to 'all', the user is unable to insert new blocks, move existing blocks and delete blocks. If set to 'insert', the user is able to move existing blocks but is unable to insert new blocks and delete blocks. Default 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 仍在开发中,某些功能无法发挥应有的作用。

【讨论】:

以上是关于WordPress Gutenberg,以编程方式更新帖子内容的主要内容,如果未能解决你的问题,请参考以下文章

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

如何强制WordPress Gutenberg刷新特色图片?

text 以编程方式禁用Gutenberg

scss WordPress Gutenberg专栏SCSS样式

如何在 Wordpress 中列出和重新排列或操作 Gutenberg 块类别

php WordPress - 禁用Gutenberg而不使用插件。