インストール

モジュールをインストールします

  1. npm install @wordpress/hooks --save

このパッケージは、あなたのコードがES2015+環境で実行されることを前提としています。そのような言語機能やAPIのサポートが限られているか、まったくない環境を使用している場合は、コードに@wordpress/babel-preset-defaultで提供されるポリフィルを含める必要があります。

使用法

JavaScriptプロジェクトで、フックを次のように使用します:

  1. import { createHooks } from '@wordpress/hooks';
  2. myObject.hooks = createHooks();
  3. myObject.hooks.addAction(); //etc...

グローバルインスタンス

上記の例では、Hooksオブジェクトのカスタムインスタンスを作成し、そこにフックを登録しています。このパッケージは、defaultHooksという名前のエクスポートを介してアクセス可能なデフォルトのグローバルインスタンスも作成し、そのメソッドは個別にエクスポートされています。

WordPressの文脈では、API関数をグローバルwp.hooksオブジェクトを介して呼び出すことができ、wp.hooks.addAction()などのように呼び出すことができます。

JSとPHPのフックAPIの間の顕著な違いは、JSバージョンでは、addAction()addFilter()も第二引数として名前空間を含める必要があることです。名前空間は、vendor/plugin/functionの形式でコールバックを一意に識別します。

APIの使用法

  • createHooks()
  • addAction( 'hookName', 'namespace', callback, priority )
  • addFilter( 'hookName', 'namespace', callback, priority )
  • removeAction( 'hookName', 'namespace' )
  • removeFilter( 'hookName', 'namespace' )
  • removeAllActions( 'hookName' )
  • removeAllFilters( 'hookName' )
  • doAction( 'hookName', arg1, arg2, moreArgs, finalArg )
  • doActionAsync( 'hookName', arg1, arg2, moreArgs, finalArg )
  • applyFilters( 'hookName', content, arg1, arg2, moreArgs, finalArg )
  • applyFiltersAsync( 'hookName', content, arg1, arg2, moreArgs, finalArg )
  • doingAction( 'hookName' )
  • doingFilter( 'hookName' )
  • didAction( 'hookName' )
  • didFilter( 'hookName' )
  • hasAction( 'hookName', 'namespace' )
  • hasFilter( 'hookName', 'namespace' )
  • actions
  • filters
  • defaultHooks

アクション/フィルターの追加または削除時のイベント

アクションまたはフィルターが追加または削除されるたびに、一致するhookAddedまたはhookRemovedアクションがトリガーされます。

  • hookAddedアクションは、addFilter()またはaddAction()メソッドが呼び出され、hookNamefunctionNamecallback、およびpriorityの値が渡されるときにトリガーされます。
  • hookRemovedアクションは、removeFilter()またはremoveAction()メソッドが呼び出され、hookNameおよびfunctionNameの値が渡されるときにトリガーされます。

すべてのフック

非圧縮ビルドでは、開発者はすべてのフックで呼び出されるフィルターまたはアクションを登録できます。例えば: addAction( 'all', 'namespace', callbackFunction );。デバッグに便利ですが、allフックをサポートするコードは、パフォーマンスの理由から本番コードから削除されます。

このパッケージへの貢献

これはGutenbergプロジェクトの一部である個別のパッケージです。このプロジェクトはモノレポとして整理されています。特定の目的を持つ複数の自己完結型ソフトウェアパッケージで構成されています。このモノレポ内のパッケージは、https://www.npmjs.com/に公開され、https://make.wordpress.org/core/や他のソフトウェアプロジェクトで使用されています。

このパッケージやGutenberg全体への貢献について詳しく知りたい場合は、プロジェクトの主要なhttps://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.mdをお読みください。