如何向页面添加自定义控件?

时间:2019-06-14 11:17:54

标签: wordpress wordpress-gutenberg

我需要在Gutenberg的页面编辑表单中添加一个复选框,而没有ACF之类的第三方插件。我做了一些教程,包括官方的Wordpress页面上的教程,但是它的行为不符合我的需要。

我已经在侧边栏添加了其他内容(我将复选框替换为一个toogle,但它是相同的),如果单击不更改其状态,该元素本身将无法工作,或者在以下情况下也无法存储该值保存页面。

以前,我可以使用metabox解决它,但是它不再与此版本的Wordpress兼容。

在保存页面时,我应该在代码中修改什么以更改组件的状态,然后将其存储在数据库中?

我尝试过这种方法并且可以工作,但不是我所需要的:https://developer.wordpress.org/block-editor/tutorials/plugin-sidebar-0/plugin-sidebar-1-up-and-running/

我尝试过这样的操作:https://www.codeinwp.com/blog/make-plugin-compatible-with-gutenberg-sidebar-api/

$data

此代码注册了侧边栏,添加了控件,但是没有更改他的状态,也没有保存到数据库中。

欢迎任何帮助。

致谢!

1 个答案:

答案 0 :(得分:0)

如果要保存稍后在gutenberg块上添加的数据,则需要使用addFilter。我可以向您展示我正在使用的示例:

wp.hooks.addFilter('blocks.registerBlockType', 'custom/filter', function(x,y) {
    if(x.hasOwnProperty('attributes')){
        x.attributes.background_image = {
            type: 'string',
            default: ''
        };
    }
    return x;
});