インストール
モジュールをインストールします
npm install @wordpress/hooks --save
このパッケージは、あなたのコードがES2015+環境で実行されることを前提としています。そのような言語機能やAPIのサポートが限られているか、まったくない環境を使用している場合は、コードに@wordpress/babel-preset-default
で提供されるポリフィルを含める必要があります。
使用法
JavaScriptプロジェクトで、フックを次のように使用します:
import { createHooks } from '@wordpress/hooks';
myObject.hooks = createHooks();
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()
メソッドが呼び出され、hookName
、functionName
、callback
、および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をお読みください。