【WordPress】フックについて

今回は、WordPressの「フック」について簡単に説明します。
WordPressでPHPを使ってカスタマイズを行う際には、フックを利用することが多くあります。フックにはいくつか種類がありますが、今回は基本となる「アクションフック」と「フィルターフック」について説明します。

■フックとは

フックとは、WordPressの処理に自分の用意した処理を追加したり、既存の値を変更したりするための仕組みです。
WordPressには、ページの表示や記事の登録など様々なタイミングでフックが用意されています。そのため、WordPress本体のファイルを直接編集しなくても「functions.php」などから独自の処理を追加することができます。
フックは大きく分けて以下の2種類があります。

  • アクションフック
  • フィルターフック

それぞれ役割が異なるため、用途に応じて使い分けます。

■アクションフック

アクションフックは、WordPressの特定の処理が実行されるタイミングで、自分で用意した処理を実行するために使用します。
例えば、ページのフッター部分にメッセージを追加する場合は、以下のように記述します。

[/crayon]

“wp_footer”は、ページの下部で処理を実行するためのアクションフックです。
この例では、”add_action()”を使って”my_footer_message()”を登録しているため、フッターが表示されるタイミングでメッセージが表示されます。
このように、「あるタイミングで処理を実行したい」という場合にアクションフックを使用します。

■フィルターフック

フィルターフックは、WordPressが扱っている値を変更したい場合などに使用します。
例えば、記事の本文の最後に「この記事を読んでいただきありがとうございました。」という文章を追加する場合は、以下のように書くことができます。

[/crayon]

この例では、”add_filter()”を使って”my_add_message()”という関数を”the_content”に登録しています。
“the_content”は、記事の本文を扱うためのフィルターフックです。
“my_add_message()”では、引数として受け取った記事本文に文章を追加し、変更後の本文を”return”しています。そのため、記事を表示すると、もともとの本文に「この記事を読んでいただきありがとうございました。」という文章が追加されます。
このように、「WordPressが扱っている値を受け取り、内容を変更して返したい」という場合にフィルターフックを使用します。

■アクションフックとフィルターフックの違い

2つの違いを簡単にまとめると、以下のようになります。

種類用途
アクションフック特定のタイミングで処理を実行する
フィルターフックWordPressが扱う値を変更する

例えば、「ページが表示されるタイミングでCSSを読み込みたい」という場合はアクションフックを使用します。一方、「記事の本文を変更したい」という場合はフィルターフックを使用します。
この違いを覚えておくと、フックを使う際にどちらを利用すればよいか判断しやすくなります。

■フックを使うときの注意点

フックを使用するとWordPressのさまざまな処理をカスタマイズできますが、どのフックを使うかによって処理が実行されるタイミングや、扱える値が異なります。そのため、使用する前にそのフックが「いつ実行されるのか」「どのような値を扱えるのか」を確認することが大切です。
また、”functions.php”に処理を追加する場合は、記述を間違えるとサイトの動作に影響する可能性があります。編集する際には、事前にバックアップを取るなど、注意して作業することが重要です。

■最後に

今回は、WordPressのフックについて簡単に説明しました。
フックを利用することで、WordPress本体のファイルを直接編集することなく、独自の処理を追加したり、既存の値を変更したりすることができます。
特に”functions.php”を使ってWordPressをカスタマイズする場合には、アクションフックとフィルターフックを利用する機会が多くあります。
最初は少し分かりにくいかもしれませんが、「処理を追加するならアクション」「値を変更するならフィルター」と覚えておくと分かりやすいと思います。