この記事ではWordPressのフックの仕組みとその使い方について説明しています。
そもそもWordPressのフックとは何?
WordPressで実行され、ページが表示されるまでの間のタイミングで、事前に登録された処理を実行させることができる仕組みのことをフックと言います。
WordPressがページを表示する際には、まず index.php
、 style.css
が必要になります。最低限その2つのファイルがあれば、ページを表示させることができます。
また、ファイルは index.php
が読み込まれ、そこから様々なファイルが読み込まれていきます。ここで読み込まれているファイルはコアファイルと呼ばれており、WordPressアップデート時に上書きされてしまいます。
つまり、コアファイルをカスタマイズしても上書きされてしまうということです。そこで登場するのがフックです!
WordPressのフックを使った例
例としてタイトルを表示する際の独自の処理をフックを使って実現する例を下記に示しました。
function display_title( $title, $id = null) {
return $title;
}
add_filter('the_title', 'display_title', 10, 2);
タイトルを出力する前に the_title にフックして display_title を差し込むことによって出力するタイトルをカスタマイズできます。
上記ではまず、タイトルを返す display_title という関数を定義しています。その後の add_filter については以下のような使い方です。
add_filter(第二引数で指定した関数を登録するフィルターフック名, フィルターが適用時に呼び出される関数名, フィルターフックに登録された関数の中での実行順序, 関数を受け取る引数の個数)
add_filter の詳しい使い方については、WordPress の公式ドキュメントで以下を参照してください。
WordPressのフックは2種類ある
WordPressのフックには、
- フィルターフック
- アクションフック
の2種類があります。
先ほど説明した add_filter がフィルターフックに該当します。その一方でアクションフックに当たるのが add_filter です。add_action の使い方を下記に示しました。
function send_email( $post_ID ) {
$friends = 'example1@example.com, example2@example.com';
wp_mail( $friends, "exampleブログを更新しました", 'https://blog.example.com' );
return $post_ID;
}
add_action( 'publish_post', 'send_email' );
上記はブログを投稿した際に、特定の友人に知らせる処理です。
add_action の使い方に関しても以下に示しました。add_filter の使い方とほとんど同じです。
add_action(第二引数で指定した関数を登録するアクションフック名, アクションフック適用時に呼び出される関数名, アクションフックに関連づけられている関数の中での実行順序, フックした関数を受け入れることができる引数の個数)
add_action の詳しい使い方についても、WordPress の公式ドキュメントで以下を参照してください。
WordPressのフックについてのまとめ
ここまでWordPressにおけるフックの仕組み、使い方について説明してきました。
- フック・・・ページが表示されるまでの間のタイミングで、事前に登録された処理を実行させることができる仕組み
- WordPress本体のコードを変更せずにカスタマイズできる(WordPressのバージョンアップによって上書きされない)
- フックは2種類
- フィルターフック(add_filter)
- アクションフック(add_action)
フックの仕組みをもっと詳しく知りたいという方は、公式ドキュメントのCodexを参考にしましょう。
参考になった本
詳細記事

コメント