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

时间:2018-11-13 作者:zarex360

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

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

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

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

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

1 个回复
SO网友:Tom J Nowell

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

注册帖子类型时可以这样说。您可以列出允许的块、不允许的块、初始起始块、是否可以删除/添加/移动它们、是否可以添加新块等

测试1:我已经创建了一个包含所有所需字段的ACF块,当我从WP admin创建新帖子时,它正常工作。但当我运行update\\u field函数时,它会像以前一样将其保存到post\\u meta表中。所以,我这里的问题是如何更新字段,使其保存到post\\U内容,而不是post\\U元表。

答案是你没有。你在《经典编辑》中没有,为什么古腾堡会有任何不同

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

ACF块不是帖子内容,它们是块,是的,但它们不在帖子内容中存储任何内容。我将它们称为“元块”,它在编辑器中纯粹用作UI。

所以,你要找的是古腾堡模板(阅读手册非常重要,这会节省你很多时间)

https://wordpress.org/gutenberg/handbook/templates/

块模板定义为块项目列表。此类块可以具有预定义的属性、占位符内容,并且可以是静态的或动态的。块模板允许指定编辑器会话的默认初始状态。

然后提供了注册自定义帖子类型的示例:

function myplugin_register_book_post_type() {
    $args = array(
        \'public\' => true,
        \'label\'  => \'Books\',
        \'show_in_rest\' => true,
        \'template\' => array(
            array( \'core/image\', array(
                \'align\' => \'left\',
            ) ),
            array( \'core/heading\', array(
                \'placeholder\' => \'Add Author...\',
            ) ),
            array( \'core/paragraph\', array(
                \'placeholder\' => \'Add Description...\',
            ) ),
        ),
    );
    register_post_type( \'book\', $args );
}
add_action( \'init\', \'myplugin_register_book_post_type\' );
以及模板锁定:

https://wordpress.org/gutenberg/handbook/templates/#locking

有时,目的可能是将模板锁定在UI上,以便无法操纵显示的块。这是通过template\\u lock属性实现的。

调用时提供新参数register_post_type:

\'template_lock\' => \'all\', // or \'insert\' to allow moving
以及其他示例。要向这些模板添加ACF块,您需要咨询ACF支持部门,因为ACF是第三方插件,第三方插件与主题无关

结束

相关推荐

WordPress Gutenberg,以编程方式更新帖子内容 - 小码农CODE - 行之有效找到问题解决它

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

时间:2018-11-13 作者:zarex360

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

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

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

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

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

1 个回复
SO网友:Tom J Nowell

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

注册帖子类型时可以这样说。您可以列出允许的块、不允许的块、初始起始块、是否可以删除/添加/移动它们、是否可以添加新块等

测试1:我已经创建了一个包含所有所需字段的ACF块,当我从WP admin创建新帖子时,它正常工作。但当我运行update\\u field函数时,它会像以前一样将其保存到post\\u meta表中。所以,我这里的问题是如何更新字段,使其保存到post\\U内容,而不是post\\U元表。

答案是你没有。你在《经典编辑》中没有,为什么古腾堡会有任何不同

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

ACF块不是帖子内容,它们是块,是的,但它们不在帖子内容中存储任何内容。我将它们称为“元块”,它在编辑器中纯粹用作UI。

所以,你要找的是古腾堡模板(阅读手册非常重要,这会节省你很多时间)

https://wordpress.org/gutenberg/handbook/templates/

块模板定义为块项目列表。此类块可以具有预定义的属性、占位符内容,并且可以是静态的或动态的。块模板允许指定编辑器会话的默认初始状态。

然后提供了注册自定义帖子类型的示例:

function myplugin_register_book_post_type() {
    $args = array(
        \'public\' => true,
        \'label\'  => \'Books\',
        \'show_in_rest\' => true,
        \'template\' => array(
            array( \'core/image\', array(
                \'align\' => \'left\',
            ) ),
            array( \'core/heading\', array(
                \'placeholder\' => \'Add Author...\',
            ) ),
            array( \'core/paragraph\', array(
                \'placeholder\' => \'Add Description...\',
            ) ),
        ),
    );
    register_post_type( \'book\', $args );
}
add_action( \'init\', \'myplugin_register_book_post_type\' );
以及模板锁定:

https://wordpress.org/gutenberg/handbook/templates/#locking

有时,目的可能是将模板锁定在UI上,以便无法操纵显示的块。这是通过template\\u lock属性实现的。

调用时提供新参数register_post_type:

\'template_lock\' => \'all\', // or \'insert\' to allow moving
以及其他示例。要向这些模板添加ACF块,您需要咨询ACF支持部门,因为ACF是第三方插件,第三方插件与主题无关

相关推荐