UNPKG

@wordpress/plugins

Version:
216 lines (146 loc) 5.12 kB
# Plugins Plugins module for WordPress. ## Installation Install the module ```bash npm install @wordpress/plugins --save ``` _This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._ ### Plugins API <!-- START TOKEN(Autogenerated API docs) --> #### getPlugin Returns a registered plugin settings. _Parameters_ - _name_ `string`: Plugin name. _Returns_ - `WPPlugin | undefined`: Plugin setting. #### getPlugins Returns all registered plugins without a scope or for a given scope. _Parameters_ - _scope_ `string`: The scope to be used when rendering inside a plugin area. No scope by default. _Returns_ - `WPPlugin[]`: The list of plugins without a scope or for a given scope. #### PluginArea A component that renders all plugin fills in a hidden div. _Usage_ ```js // Using ES5 syntax var el = React.createElement; var PluginArea = wp.plugins.PluginArea; function Layout() { return el( 'div', { scope: 'my-page' }, 'Content of the page', PluginArea ); } ``` ```js // Using ESNext syntax import { PluginArea } from '@wordpress/plugins'; const Layout = () => ( <div> Content of the page <PluginArea scope="my-page" /> </div> ); ``` _Parameters_ - _props_ `{ scope?: string; onError?: ( name: WPPlugin[ 'name' ], error: Error ) => void; }`: - _props.scope_ `string`: - _props.onError_ `( name: WPPlugin[ 'name' ], error: Error ) => void`: _Returns_ - `Component`: The component to be rendered. #### registerPlugin Registers a plugin to the editor. _Usage_ ```js // Using ES5 syntax var el = React.createElement; var Fragment = wp.element.Fragment; var PluginSidebar = wp.editor.PluginSidebar; var PluginSidebarMoreMenuItem = wp.editor.PluginSidebarMoreMenuItem; var registerPlugin = wp.plugins.registerPlugin; var moreIcon = React.createElement( 'svg' ); //... svg element. function Component() { return el( Fragment, {}, el( PluginSidebarMoreMenuItem, { target: 'sidebar-name', }, 'My Sidebar' ), el( PluginSidebar, { name: 'sidebar-name', title: 'My Sidebar', }, 'Content of the sidebar' ) ); } registerPlugin( 'plugin-name', { icon: moreIcon, render: Component, scope: 'my-page', } ); ``` ```js // Using ESNext syntax import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/editor'; import { registerPlugin } from '@wordpress/plugins'; import { more } from '@wordpress/icons'; const Component = () => ( <> <PluginSidebarMoreMenuItem target="sidebar-name"> My Sidebar </PluginSidebarMoreMenuItem> <PluginSidebar name="sidebar-name" title="My Sidebar"> Content of the sidebar </PluginSidebar> </> ); registerPlugin( 'plugin-name', { icon: more, render: Component, scope: 'my-page', } ); ``` _Parameters_ - _name_ `string`: A string identifying the plugin. Must be unique across all registered plugins. - _settings_ `PluginSettings`: The settings for this plugin. _Returns_ - `PluginSettings | null`: The final plugin settings object. #### unregisterPlugin Unregisters a plugin by name. _Usage_ ```js // Using ES5 syntax var unregisterPlugin = wp.plugins.unregisterPlugin; unregisterPlugin( 'plugin-name' ); ``` ```js // Using ESNext syntax import { unregisterPlugin } from '@wordpress/plugins'; unregisterPlugin( 'plugin-name' ); ``` _Parameters_ - _name_ `string`: Plugin name. _Returns_ - `WPPlugin | undefined`: The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`. #### usePluginContext A hook that returns the plugin context. _Returns_ - `PluginContext`: Plugin context #### withPluginContext > **Deprecated** 6.8.0 Use `usePluginContext` hook instead. A Higher Order Component used to inject Plugin context to the wrapped component. _Parameters_ - _mapContextToProps_ `( context: PluginContext, props: T ) => T & PluginContext`: Function called on every context change, expected to return object of props to merge with the component's own props. _Returns_ - `Component`: Enhanced component with injected context as props. <!-- END TOKEN(Autogenerated API docs) --> ## 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](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) 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](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md). <br /><br /><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>