PluginDocumentSettingPanel是WordPress插件开发中的一个特殊类,用于在编辑文章页面添加自定义设置面板。它常用于为插件添加一些额外的选项或配置。
要保存放置在PluginDocumentSettingPanel中的复选框的状态,可以采取以下步骤:
function my_plugin_init() {
register_meta( 'post', 'my_checkbox_field', array(
'type' => 'boolean',
'single' => true,
'show_in_rest' => true,
) );
}
add_action( 'init', 'my_plugin_init' );
const { PluginDocumentSettingPanel } = wp.editPost;
const { useSelect, useDispatch } = wp.data;
function MyPluginDocumentSettingPanel() {
const meta = useSelect( ( select ) => {
return select( 'core/editor' ).getEditedPostAttribute( 'meta' );
} );
const { editPost } = useDispatch( 'core/editor' );
const onChangeCheckbox = ( newValue ) => {
editPost( { meta: { my_checkbox_field: newValue } } );
};
return (
<PluginDocumentSettingPanel
name="my-plugin-panel"
title="My Plugin Settings"
className="my-plugin-panel"
>
<label>
<input
type="checkbox"
checked={ meta.my_checkbox_field || false }
onChange={ ( e ) => onChangeCheckbox( e.target.checked ) }
/>
Enable Option
</label>
</PluginDocumentSettingPanel>
);
}
wp.plugins.registerPlugin( 'my-plugin-document-panel', {
render: MyPluginDocumentSettingPanel,
} );
在上述代码中,我们使用了wp.data库中的useSelect和useDispatch来获取和更新复选框的状态。
const onChangeCheckbox = ( newValue ) => {
editPost( { meta: { my_checkbox_field: newValue } } );
wp.data.dispatch( 'core/editor' ).savePost();
};
通过以上步骤,就可以在PluginDocumentSettingPanel中保存复选框的状态了。
领取专属 10元无门槛券
手把手带您无忧上云