⚔️

【WordPress】アクションフックとフィルターフックの違い

2020/10/13に公開

背景

アクションフックとフィルターフックは WordPress API の基礎的な部分です。これらが無いと、テーマとプラグインのカスタマイズ性がかなり低下します。なので、WordPress で開発する上で理解すべき重要な概念の一つです。

しかし、アクションフックとフィルターフックは混同してしまう時があります。

そこで、本記事では、アクションフックとフィルターフックの定義を確認します。その後、それらの違いを簡潔に述べます。最後に、具体的なアクションフックとフィルターフックの使い方を説明します。

定義

アクションフック

アクションフックは、ページの読み込み、ユーザのログイン、テーマやプラグインで定義されているカスタムアクションなど、何かが起こった際に発火します。

フィルターフック

フィルターフックやフィルターは、何かがどのように起こるかを制御したり、既に出力されているものを変更したりします。フィルターを使うと、メタデータを特定の形式で出力したり、プラグインが出力するテキストを上書きしたり、何かが全く表示されないようにしたりすることができます。

使用

アクションフック

do_action() 関数を使って独自のアクションフックを追加することができます。アクションにフックした関数は、コードのその時点で実行されます。

フィルターフック

コードにフィルターを追加するには apply_filters() 関数を使います。apply という単語が示すように、既存のコードにフィルターを適用します。

違い

主な違いは、フィルターが変数を修正するために使用されるということです。アクションとは異なり、フィルターのコードは元の値を修正したコピーである値を返さなければなりません。アクションフックは値を返す必要はありません。

Discussion