![](/img/trans.png)
[英]WordPress Gutenberg-Block Editor component SelectControl: custom event prop
[英]How can I add and save my own custom field in the WordPress Gutenberg (block editor) panel?
首先注册元字段(php):
register_meta('post', '_my_meta_field', [
'show_in_rest' => true,
'single' => true,
'type' => 'string',
'auth_callback' => function() {
return current_user_can('edit_posts');
}
]);
add_action('init', 'register_meta');
然后制作面板/字段(js):
const { TextControl } = wp.components
const { useDispatch, useSelect } = wp.data
const { PluginDocumentSettingPanel } = wp.editPost
const { registerPlugin } = wp.plugins
const PluginDocumentSettingPanelDemo = () => {
const { meta } = useSelect(select => ({
meta: select('core/editor').getEditedPostAttribute('meta')
}))
const { editPost } = useDispatch('core/editor')
const setMeta = keyAndValue => {
editPost({ meta: keyAndValue })
}
return (
<PluginDocumentSettingPanel
name="custom-panel"
title="Custom Panel"
className="custom-panel"
>
<TextControl
onChange={ newValue => setMeta({ '_my_meta_field': newValue }) }
value={ meta['_my_meta_field'] }
/>
</PluginDocumentSettingPanel>
)
}
registerPlugin('plugin-document-setting-panel-demo', {
render: PluginDocumentSettingPanelDemo
})
无法测试,所以如果您有任何错误,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.