テーマとプラグインが同じアクションフックを使用する場合、例えばcomment_form
はテーマとプラグインの両方で使用されます。では、どちらが先に呼ばれるのでしょうか。テーマのフックに関連付けられている関数、またはプラグインのフックに関連付けられている関数。
アクションフックは、単純にキューポイント動作しますPHP実行プロセスの特定のポイントで:コールバックはadd_action()
呼び出しを介してキューに入れられます、およびキュー内のすべてが順番に処理されます。
add_action( 'hook_name', 'callback_name', $priority, $number_of_args );
フィルターフックは、同様のキューポイントであり、それだけが機能します特定のデータビットに対して-文字列、配列、整数、その他何でもかまいません。アクションと同様に、コールバックはadd_filter()
呼び出しを介してキューに入れられ、キュー内のすべてが順番に処理されます。
add_filter( 'hook_name', 'callback_name', $priority, $number_of_args );
1つのコールバックが別のコールバックよりも早くまたは遅く処理されるようにする必要がある場合、2つのコールバックが異なるprioritiesを持っていることを確認する必要があります。 下位数値、上位優先順位、および初期実行。デフォルトの優先度は10
であるため、優先度11
で追加されたものはすべて実行されますafterデフォルト、および9
の優先度で追加されたものはすべて実行されます- beforeデフォルト。
そのため、はい:テーマandプラグインは、競合することなく、同じアクション/フィルターフックにアクションまたはフィルターコールバックを追加できます。
すべてのaction/filter
フックには優先度パラメータがあります(3番目のパラメータ)。デフォルト値は10
です。値が小さいほど、早く呼び出されます。
好き
add_action( $tag, $function_to_add, $priority, $accepted_args );
add_filter( $tag, $function_to_add, $priority, $accepted_args );