WordPressの「フック」とは?

WordPressのプラグイン開発やカスタマイズを学び始めると、必ず出てくるのが「フック(hook)」です。そして、多くの人が最初につまずくのもここです。実際、私が学習ロードマップの記事で「フックは最大の山」とお伝えしたのも、それだけ重要で、かつ最初はイメージしづらいからです。

結論から言うと、フックとは、WordPressの処理の流れの中にあらかじめ用意された”差し込みポイント”のことです。ここに自分の処理を引っかける(hookする)ことで、WordPress本体やプラグイン・テーマのコードを直接書き換えずに、機能を足したり、出力を変えたりできます。フックには2種類あり、「処理を差し込む」アクションフックと、「値を受け取って、変えて返す」フィルターフックに分かれます。この記事で、その違いと使い方を整理しましょう。

ここに画像1を差し込む

なぜフックが「WordPress開発の心臓」なのか?

理由はシンプルで、本体のコードを直接触らずに、安全に機能を足せる仕組みだからです。WordPress本体やプラグインのファイルを直接書き換えてしまうと、アップデートのたびに変更が上書きされて消えてしまいます。せっかくのカスタマイズが、更新の瞬間に無かったことになるのです。

フックを使えば、自分の処理を独立した形で”外づけ”できます。本体は触らないので、更新が来ても壊れません。だからこそ、テーマの functions.php や自作プラグインでは、カスタマイズのほとんどをフック経由で行います。フックを制することが、WordPress開発を制することにつながるわけです。

2種類のフック:アクションとフィルターの違い

フックの2種類は、役割がはっきり違います。ここを押さえるだけで、理解が一気に進みます。

観点 アクションフック フィルターフック
役割 特定のタイミングで処理を実行する ある値を受け取り、加工して返す
戻り値 返さない(何かを”する”だけ) 必ず return して値を返す
使う関数 add_action() add_filter()
典型例 記事保存時にメールを送る/head にタグを出力する 本文の末尾に定型文を足す/タイトルの文字を変える

ざっくり言えば、アクションは「あるタイミングで何かをする」フィルターは「通り道の値を書き換える」。この一言の違いが、すべての土台です。

アクションフックの使い方(コード例)

アクションフックは、add_action( 'フック名', '実行する関数名' ) の形で使います。次は、記事一覧のループが始まるタイミングで、自分のメッセージを表示する例です。

ポイントは、この関数は値を返していないことです。「決まったタイミングで、何かをする」。これがアクションフックの役割です。

フィルターフックの使い方(コード例)

フィルターフックは、add_filter( 'フック名', '加工する関数名' ) の形で使います。関数は値を受け取り、加工して、必ず return で返すのが決まりです。次は、記事本文の末尾に一文を追加する例です。

アクションとの決定的な違いは、受け取った $content を return で返している点です。フィルターは「通り道の値を書き換えて、次へ渡す」役割なので、返さないと値が失われてしまいます。これが、次に紹介する”よくあるミス”の第1位にもつながります。

初心者がやりがちな4つのミス

私が学習者を見ていて、フックで特に多いと感じるミスが次の4つです。先に知っておくだけで、ハマる時間を大きく減らせます

  • フィルターで return を忘れる:値を返さないため、本文やタイトルが空っぽになって消える。フィルターは必ず return、と覚えておく
  • 条件分岐を付け忘れる:どこで動かすかを絞らないと、意図しないページ全体に処理が及び、思わぬ場所に影響が出る。「このページのときだけ」という条件を添える
  • 優先度(priority)の設定が不適切:他の処理との実行順がずれて、期待どおりの結果にならない。順番が重要なときは優先度を意識する
  • 引数の数を設定していない:フィルターやアクションに複数の引数を渡したいのに設定し忘れ、必要な情報が関数に届かずエラーや誤動作になる

どれも、知らないと必ず一度はハマる定番です。逆に言えば、この4つを頭に入れておくだけで、フックはぐっと怖くなくなります

フックは「手を動かして」腹落ちさせる

正直なところ、フックは文章を読むだけでは、なかなか腹落ちしません。小さなフックを実際に書いて、動かして、結果を目で見る。これがいちばんの近道です。私が講座で大事にしているのも、まさにこの部分で、あえて「return を忘れたらどうなるか」を実演して、本文が消える様子を見せたりします。失敗の姿を一度見ておくと、二度と忘れません。エラーは、フックを理解するための最高の教材なのです。

まとめ:フックは「差し込みポイント」。2種類を押さえれば怖くない

フックは、WordPressが用意してくれた“差し込みポイント”です。本体を触らずに機能を足せるから、更新にも強い。そして、アクション(決まったタイミングで実行)フィルター(値を受け取って変えて返す)の2種類さえ押さえれば、大きな山は越えられます。あとは、よくある4つのミスに気をつけながら、実際に手を動かして慣れていくだけです。

「フックを、手を動かしながら一気に体得したい」という方は、下記の講座で実際の開発の様子(成功も失敗も)をそのままご覧いただけます。冒頭は無料で視聴できます。もし「自分で書くより、作ってもらいたい」という場合は、私たちEdel Heartsが開発を承ります。

この記事をシェア