アクションフックについて
アクションフックとは、WordPressで前述のプラグイン処理を行うための仕組みです。
アクションフックのサンプル
- プラグインを行う箇所を作成します(do_action, apply_filters)
- add_actionなどのメソッドを使って処理を追加します。( add_action, add_filterなど。)
- 関数を実行すると、do_actionなどを行っている箇所で、追加された処理が実行されます。
//アクションフックを利用した関数 action_hook_func
function action_hook_func(){
//ここから処理開始
print('Aを実行します。<br>');
// アクションフックに設定されていた処理を実行させる。
do_action('between_A_and_B');
// アクションフックに引数を渡すことも可能です。
do_action('between_A_and_B_2', '引数です。');
print('Bを実行します。<br>');
}
//アクションフックを追加する前に処理を実行します。
action_hook_func();
print '<br>';
// あらかじめアクションフックに処理を追加しておく。
//アクションフックに処理を追加。
add_action('between_A_and_B', function(){
print 'AとBの間<br>';
});
// 2つ以上登録することも可能。
add_action('between_A_and_B', function(){
print 'AとBの間の処理2つめです。<br>';
});
// 引数を利用するアクションフック
add_action('between_A_and_B_2', function($arg){
print '引数:' . $arg . '<br>';
});
// action_hook_funcを実行すると、元の関数の処理の中に、アクションフックに設定した関数が埋め込まれる。
action_hook_func();
実は、WordPressでは様々な箇所でこのアクションフックと後述のフィルターフックを利用したプラグインの仕組みが使われています。そのため、functions.phpでadd_actionやadd_filterを利用することでテンプレートの表示が始まる前の様々なタイミングで処理を追加することができるようになっています。