プラグインの優先度
複数のプラグインが同じイベントフック( Plugins > Event Hooks page for details )を利用する場合、 “優先度” の順番に、でさまざまな処理が実行されます。優先度は、シンプルな番号です。大きい番号ほど、先に処理されます。
レアケースとして、特定の処理の優先度を入れ替える必要があるかもしれません。このような場合も、オリジナルのプラグインコードに触ること無く可能です。
まず、どのハンドラをどのように調整する必要があるのか、正確に決定してください。これは高度なタスクで、プラグインの .php
ファイルを読める必要があります。通常は、イベントフックと、ハンドラの関数と、デフォルトの優先度は、プラグインの onPluginsInitialized()
関数内にあります。
それから、 user/config/priorities.yaml
ファイルを作成します。データ構造は、次のようにします:
pluginName:
eventName:
handlerName: [integer]
たとえば、 essential
というプラグインがあり、 onPageInitialized
イベントで、 handlePage
関数を、優先度 0 で実行するとします。そして、いくつかの他のプラグインの 前に 実行させる必要があるため、優先度を 100
にする必要があるとしましょう。その場合、 user/config/priorities.yaml
ファイルに、以下のように追記してください:
essential:
onPageInitialized:
handlePage: 100