この例は、<PluginSidebar /> タイトルによって提供されるデフォルトのテキストを使用するのではなく、メニュー項目のテキストをカスタマイズする方法を示しています。

  1. import { __ } from '@wordpress/i18n';
  2. import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/editor';
  3. import {
  4. PanelBody,
  5. Button,
  6. TextControl,
  7. SelectControl,
  8. } from '@wordpress/components';
  9. import { registerPlugin } from '@wordpress/plugins';
  10. import { useState } from '@wordpress/element';
  11. import { image } from '@wordpress/icons';
  12. const PluginSidebarMoreMenuItemTest = () => {
  13. const [ text, setText ] = useState( '' );
  14. const [ select, setSelect ] = useState( 'a' );
  15. return (
  16. <>
  17. <PluginSidebarMoreMenuItem target="sidebar-name" icon={ image }>
  18. { __( 'Custom Menu Item Text' ) }
  19. </PluginSidebarMoreMenuItem>
  20. <PluginSidebar
  21. name="sidebar-name"
  22. icon={ image }
  23. title="My Sidebar"
  24. >
  25. <PanelBody>
  26. <h2>
  27. { __(
  28. 'This is a heading for the PluginSidebar example.'
  29. ) }
  30. </h2>
  31. <p>
  32. { __(
  33. 'This is some example text for the PluginSidebar example.'
  34. ) }
  35. </p>
  36. <TextControl
  37. label={ __( 'Text Control' ) }
  38. value={ text }
  39. onChange={ ( newText ) => setText( newText ) }
  40. />
  41. <SelectControl
  42. label={ __( 'Select Control' ) }
  43. value={ select }
  44. options={ [
  45. { value: 'a', label: __( 'Option A' ) },
  46. { value: 'b', label: __( 'Option B' ) },
  47. { value: 'c', label: __( 'Option C' ) },
  48. ] }
  49. onChange={ ( newSelect ) => setSelect( newSelect ) }
  50. />
  51. <Button variant="primary">
  52. { __( 'Primary Button' ) }{ ' ' }
  53. </Button>
  54. </PanelBody>
  55. </PluginSidebar>
  56. </>
  57. );
  58. };
  59. registerPlugin( 'plugin-sidebar-more-menu-item-example', {
  60. render: PluginSidebarMoreMenuItemTest,
  61. } );

@

位置

インタラクション