今回はWordPressの開発では欠かせないフィルターフックについての記事です。
ただ、
フィルターフックってよく聞くけどいまいちよくわからないなあ。
という方も多いのではないでしょうか。
「フック自体の概念」やアクションフックについてはこちらの記事で書いておりますのでご覧ください。
今回の記事ではフィルターフックが何なのか、フィルターフックを使うメリットは何なのかという点について深掘りしていきたいと思います。
それでは早速見ていきましょう。
フィルターフックとは
では早速ですが、フィルターフックとは「入ってきた値に対して何らかの加工を加えて返す」という役割を持っているWordPressの機能のことです。
えっどういうこと?
と思われたかもしれません。
もう少し砕いた言葉にすると、
Hello World!!という文章の前に、「こんにちは」という言葉を入れる
という感じです。
実際に例を見た方がわかりやすいかもしれませんので、以下の例を見ていきましょう。
以下ではthe_titleというテンプレートタグにフィルターフックをかけてみたいと思います。
add_filter('the_title',function($title){
return 'こんにちは'.$title;
});
上記のように記述することで、
このように記事のタイトルに「こんにちは」という文言を入れることができました。
簡単に言うとこれがフィルターフックです。
コードの解説
では上記のコードを詳しく見ていきましょう。
add_filter('the_title',function($title){
まず、add_filter()関数は、指定したフィルターフックに関数を登録する機能を持っています。
第1引数はフィルターフックをかけるテンプレートタグを指定し、第2引数には実行する関数を記述します。
function()の引数にはフィルターフックをかける値を入力します。ここでは$titleとしています。
return 'こんにちは'.$title;
そして二行目では、実際の処理内容を記述します。
ここでは「'こんにちは'という文字と$titleと文字列連結をしてね」という処理を書いています。
ここでポイントとなるのが「return」です。
アクションフックではreturnは不要でしたが、フィルターフックの場合はreturnが必須となりますので注意してください。
もしreturnを消してしまうと、以下のようにタイトル自体が消えてしまうことになります。
このように、フィルターフックは通常通り処理できていたものを破壊することもできてしまうため、注意が必要です。
フィルターフックを使うメリット
では次にフィルターフックを使うメリットについてです。
フィルターフックを使うメリットは「色々なテンプレートファイルで使い回しができること」です。
例えば、index.phpやsingle.phpなどにはthe_title()というテンプレートタグを使用すると思いますが、そこでそれぞれのファイルのthe_title()に同じ処理を直接書いていくのは面倒ですよね。
そういった場合にfunctions.php、もしくはプラグインとして別のphpファイルに記述することで色々なテンプレートファイルやテーマで使い回すことが出来るためこれがフィルターフックを使うメリットとなります。
終わりに
いかがでしたでしょうか。
フィルターフックには色々な種類があります。
データベース関連で使えるものやWordPressの管理画面で使えるものなど数えきれないくらいの数があります。
詳しくはこちらのWordPress Codexに色々なフィルターフックが書かれているので、是非参考にしてみてください。
というわけで本日の記事は以上です( ͡° ͜ʖ ͡°)