This package provides core elements for the DataView library, designed to simplify the creation and management of data display elements in WordPress.
Installation
Install the module
npm install @wordpress/fields --save
Setup
This package requires CSS from this package and from multiple dependency packages.
Within WordPress
To ensure proper load order, add the wp-components stylesheet as a dependency of your plugin’s stylesheet. See wp_enqueue_style documentation for how to specify dependencies.
WordPress registers no handle for this package’s own stylesheet, so load it with your plugin’s script:
import '@wordpress/fields/build-style/style.css';
Outside WordPress
Install and load these stylesheets in your application:
npm install @wordpress/fields @wordpress/theme @wordpress/components
import '@wordpress/theme/design-tokens.css';
import '@wordpress/components/build-style/style.css';
import '@wordpress/fields/build-style/style.css';
RTL versions of the stylesheets are available in the same paths, but with -rtl appended to the filename (style-rtl.css). The design tokens stylesheet is universal and does not have a separate RTL version.
Usage
MediaEdit
A media edit control component that provides a media picker UI with upload functionality for selecting WordPress media attachments. Supports both the traditional WordPress media library and the experimental DataViews media modal.
This component is intended to be used as the Edit property of a field definition when registering fields with registerEntityField from @wordpress/editor.
Usage
import { MediaEdit } from '@wordpress/fields';
import type { DataFormControlProps } from '@wordpress/dataviews';
const featuredImageField = {
id: 'featured_media',
type: 'media',
label: 'Featured Image',
Edit: ( props: DataFormControlProps< MyPostType > ) => (
<MediaEdit { ...props } allowedTypes={ [ 'image' ] } />
),
};
Parameters
- props
MediaEditProps<Item>: – The component props. - props.data
Item: – The item being edited. - props.field
Object: – The field configuration with getValue and setValue methods. - props.onChange
Function: – Callback function when the media selection changes. - props.allowedTypes
[string[]]: – Array of allowed media types. Use['*']to allow all file types. Default['image']. - props.multiple
[boolean]: – Whether to allow multiple media selections. Defaultfalse. - props.hideLabelFromVision
[boolean]: – Whether the label should be hidden from vision. - props.isExpanded
[boolean]: – Whether to render in an expanded form. Defaultfalse.
Returns
React.JSX.Element: The media edit control component.
MediaEditProps
Undocumented declaration.
Contributing to this package
This is an individual package that’s part of the Gutenberg project. The project is organized as a monorepo. It’s made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to npm and used by WordPress as well as other software projects.
To find out more about contributing to this package or Gutenberg as a whole, please read the project’s main contributor guide.