Gutenberg自定义元数据块未将元数据保存为自定义帖子类型
我有一个设置了自定义帖子类型的网站, 用于定义首页号召性用语框。
标题, 描述和特色图片全部由edtior的默认块/功能处理, 但是我试图添加一个自定义块以将URL保存到帖子的元数据中。
该块可以正确渲染, 但不保存元数据, 因此将明确调用updateBlockValue函数。
我使用几乎相同的代码为页面和帖子创建自定义元块。此方法仅不适用于自定义帖子类型吗?
这是我正在使用的代码:
的PHP
function wb_blocks() {wp_register_script(
'wb-blocks-js', get_template_directory_uri() . '/scripts/block.js', array( 'wp-blocks', 'wp-editor', 'wp-element', 'wp-components' )
);
register_block_type( 'ray/homebox-link-url', array(
'editor_script' =>
'wb-blocks-js', ) );
}
add_action( 'init', 'wb_blocks' );
function wb_register_block_meta() {register_meta( 'post', 'homebox_link_url', array(
'show_in_rest' =>
true, 'single' =>
true, 'type' =>
'string', ) );
}add_action( 'init', 'wb_register_block_meta' );
JS
registerBlockType( 'ray/homebox-link-url', {
title: 'Homebox Link', icon: 'universal-access-alt', category: 'layout', attributes: {
blockValue: {
type: 'string', source: 'meta', meta: 'homebox_link_url', }
}, edit: function( props ) {
var setAttributes = props.setAttributes;
function updateBlockValue( blockValue ) {
setAttributes({ blockValue });
}return el(
'div', { className: "homebox-link-url" }, el( 'h5', {}, 'URL to link to:'), el (TextControl, {
onChange: updateBlockValue, value: props.attributes. blockValue, })
);
}, save: function( props ) {
return null;
}, } );
#1你与块相关的代码看起来不错。
该问题可能与自定义帖子类型有关。注册时, 必须确保它支持自定义字段:
register_post_type(
'post-type', [
// options...
'supports' =>
[
// ...
'custom-fields', ], ]
);
最后一步可确保你的自定义帖子类型公开来自REST API的元属性, 这就是Gutenberg用于查看/更新数据的内容。
【Gutenberg自定义元数据块未将元数据保存为自定义帖子类型】(摘自https://github.com/WordPress/gutenberg/issues/5622#issuecomment-375362438)
推荐阅读
- WordPress中自定义帖子类型的硬代码自定义字段
- gulp 4不更新CSS和JS
- Frida 实现 Hook 功能的强大能力
- C语言进阶付费知识
- netty系列之:epoll传输协议详解
- Java Map接口详解
- 什么!Sentinel流控规则可以这样玩()
- 银行卡基础知识- I类-II类-III类账户
- PyTorch模型定义