セレクタ

getAllShortcutKeyCombinations

指定されたショートカット名のエイリアスを含むショートカットを返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { createInterpolateElement } from '@wordpress/element';
  4. import { sprintf } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const allShortcutKeyCombinations = useSelect(
  7. ( select ) =>
  8. select( keyboardShortcutsStore ).getAllShortcutKeyCombinations(
  9. 'core/editor/next-region'
  10. ),
  11. []
  12. );
  13. return (
  14. allShortcutKeyCombinations.length > 0 && (
  15. <ul>
  16. { allShortcutKeyCombinations.map(
  17. ( { character, modifier }, index ) => (
  18. <li key={ index }>
  19. { createInterpolateElement(
  20. sprintf(
  21. 'Character: <code>%s</code> / Modifier: <code>%s</code>',
  22. character,
  23. modifier
  24. ),
  25. {
  26. code: <code />,
  27. }
  28. ) }
  29. </li>
  30. )
  31. ) }
  32. </ul>
  33. )
  34. );
  35. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。

返すもの

  • WPShortcutKeyCombination[]: キーの組み合わせ。

getAllShortcutRawKeyCombinations

指定されたショートカット名のすべてのキーボードの組み合わせの生の表現を返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { createInterpolateElement } from '@wordpress/element';
  4. import { sprintf } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const allShortcutRawKeyCombinations = useSelect(
  7. ( select ) =>
  8. select( keyboardShortcutsStore ).getAllShortcutRawKeyCombinations(
  9. 'core/editor/next-region'
  10. ),
  11. []
  12. );
  13. return (
  14. allShortcutRawKeyCombinations.length > 0 && (
  15. <ul>
  16. { allShortcutRawKeyCombinations.map(
  17. ( shortcutRawKeyCombination, index ) => (
  18. <li key={ index }>
  19. { createInterpolateElement(
  20. sprintf(
  21. ' <code>%s</code>',
  22. shortcutRawKeyCombination
  23. ),
  24. {
  25. code: <code />,
  26. }
  27. ) }
  28. </li>
  29. )
  30. ) }
  31. </ul>
  32. )
  33. );
  34. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。

返すもの

  • string[]: ショートカット。

getCategoryShortcuts

指定されたカテゴリ名のショートカット名のリストを返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. const ExampleComponent = () => {
  4. const categoryShortcuts = useSelect(
  5. ( select ) =>
  6. select( keyboardShortcutsStore ).getCategoryShortcuts( 'block' ),
  7. []
  8. );
  9. return (
  10. categoryShortcuts.length > 0 && (
  11. <ul>
  12. { categoryShortcuts.map( ( categoryShortcut ) => (
  13. <li key={ categoryShortcut }>{ categoryShortcut }</li>
  14. ) ) }
  15. </ul>
  16. )
  17. );
  18. };

パラメータ

  • state Object: グローバルステート。
  • name string: カテゴリ名。

返すもの

  • string[]: ショートカット名。

getShortcutAliases

指定されたショートカット名のエイリアスを返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { createInterpolateElement } from '@wordpress/element';
  4. import { sprintf } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const shortcutAliases = useSelect(
  7. ( select ) =>
  8. select( keyboardShortcutsStore ).getShortcutAliases(
  9. 'core/editor/next-region'
  10. ),
  11. []
  12. );
  13. return (
  14. shortcutAliases.length > 0 && (
  15. <ul>
  16. { shortcutAliases.map( ( { character, modifier }, index ) => (
  17. <li key={ index }>
  18. { createInterpolateElement(
  19. sprintf(
  20. 'Character: <code>%s</code> / Modifier: <code>%s</code>',
  21. character,
  22. modifier
  23. ),
  24. {
  25. code: <code />,
  26. }
  27. ) }
  28. </li>
  29. ) ) }
  30. </ul>
  31. )
  32. );
  33. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。

返すもの

  • WPShortcutKeyCombination[]: キーの組み合わせ。

getShortcutDescription

指定されたショートカット名の説明を返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { __ } from '@wordpress/i18n';
  4. const ExampleComponent = () => {
  5. const shortcutDescription = useSelect(
  6. ( select ) =>
  7. select( keyboardShortcutsStore ).getShortcutDescription(
  8. 'core/editor/next-region'
  9. ),
  10. []
  11. );
  12. return shortcutDescription ? (
  13. <div>{ shortcutDescription }</div>
  14. ) : (
  15. <div>{ __( 'No description.' ) }</div>
  16. );
  17. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。

返すもの

  • string?: ショートカットの説明。

getShortcutKeyCombination

指定されたショートカット名の主要なキーの組み合わせを返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { createInterpolateElement } from '@wordpress/element';
  4. import { sprintf } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const { character, modifier } = useSelect(
  7. ( select ) =>
  8. select( keyboardShortcutsStore ).getShortcutKeyCombination(
  9. 'core/editor/next-region'
  10. ),
  11. []
  12. );
  13. return (
  14. <div>
  15. { createInterpolateElement(
  16. sprintf(
  17. 'Character: <code>%s</code> / Modifier: <code>%s</code>',
  18. character,
  19. modifier
  20. ),
  21. {
  22. code: <code />,
  23. }
  24. ) }
  25. </div>
  26. );
  27. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。

返すもの

  • WPShortcutKeyCombination?: キーの組み合わせ。

getShortcutRepresentation

指定されたショートカット名の主要なキーの組み合わせを表す文字列を返します。

使用法

  1. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  2. import { useSelect } from '@wordpress/data';
  3. import { sprintf } from '@wordpress/i18n';
  4. const ExampleComponent = () => {
  5. const { display, raw, ariaLabel } = useSelect( ( select ) => {
  6. return {
  7. display: select( keyboardShortcutsStore ).getShortcutRepresentation(
  8. 'core/editor/next-region'
  9. ),
  10. raw: select( keyboardShortcutsStore ).getShortcutRepresentation(
  11. 'core/editor/next-region',
  12. 'raw'
  13. ),
  14. ariaLabel: select(
  15. keyboardShortcutsStore
  16. ).getShortcutRepresentation(
  17. 'core/editor/next-region',
  18. 'ariaLabel'
  19. ),
  20. };
  21. }, [] );
  22. return (
  23. <ul>
  24. <li>{ sprintf( 'display string: %s', display ) }</li>
  25. <li>{ sprintf( 'raw string: %s', raw ) }</li>
  26. <li>{ sprintf( 'ariaLabel string: %s', ariaLabel ) }</li>
  27. </ul>
  28. );
  29. };

パラメータ

  • state Object: グローバルステート。
  • name string: ショートカット名。
  • representation keyof FORMATTING_METHODS: 表現のタイプ(表示、原始、ariaLabel)。

返すもの

  • string?: ショートカットの表現。

アクション

registerShortcut

新しいキーボードショートカットを登録するために使用されるアクションオブジェクトを返します。

使用法

  1. import { useEffect } from 'react';
  2. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  3. import { useSelect, useDispatch } from '@wordpress/data';
  4. import { __ } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const { registerShortcut } = useDispatch( keyboardShortcutsStore );
  7. useEffect( () => {
  8. registerShortcut( {
  9. name: 'custom/my-custom-shortcut',
  10. category: 'my-category',
  11. description: __( 'My custom shortcut' ),
  12. keyCombination: {
  13. modifier: 'primary',
  14. character: 'j',
  15. },
  16. } );
  17. }, [] );
  18. const shortcut = useSelect(
  19. ( select ) =>
  20. select( keyboardShortcutsStore ).getShortcutKeyCombination(
  21. 'custom/my-custom-shortcut'
  22. ),
  23. []
  24. );
  25. return shortcut ? (
  26. <p>{ __( 'Shortcut is registered.' ) }</p>
  27. ) : (
  28. <p>{ __( 'Shortcut is not registered.' ) }</p>
  29. );
  30. };

パラメータ

  • config WPShortcutConfig: ショートカットの設定。

返すもの

  • Object: アクション。

unregisterShortcut

キーボードショートカットの登録を解除するために使用されるアクションオブジェクトを返します。

使用法

  1. import { useEffect } from 'react';
  2. import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
  3. import { useSelect, useDispatch } from '@wordpress/data';
  4. import { __ } from '@wordpress/i18n';
  5. const ExampleComponent = () => {
  6. const { unregisterShortcut } = useDispatch( keyboardShortcutsStore );
  7. useEffect( () => {
  8. unregisterShortcut( 'core/editor/next-region' );
  9. }, [] );
  10. const shortcut = useSelect(
  11. ( select ) =>
  12. select( keyboardShortcutsStore ).getShortcutKeyCombination(
  13. 'core/editor/next-region'
  14. ),
  15. []
  16. );
  17. return shortcut ? (
  18. <p>{ __( 'Shortcut is not unregistered.' ) }</p>
  19. ) : (
  20. <p>{ __( 'Shortcut is unregistered.' ) }</p>
  21. );
  22. };

パラメータ

  • name string: ショートカット名。

返すもの

  • Object: アクション。