API フックとは

プラグインやテーマの動作を WordPress 本体に連動させることができます。WordPress 本体に修正を加えなくてもカスタマイズできます。

アクションとフィルタ

API フックにはアクションとフィルタがあります。アクションは WordPress で発生するイベントによって実行されます。イベントは投稿やテンプレートの変更などユーザが行う行動です。フィルタはテーマなどで出力するテキストデータを変更するものです。

アクションフック

add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );

プライオリティとオプションは省略可能です。プライオリティはデフォルトで10です。小さい数字のアクションが先に実行されます。

作成した function_name という関数に hook_name というアクションにフックしたいときは以下のようになります。

function function_name($arg) {
	/* 実際の処理 */
}

add_action ('hook_name', 'function_namae');

フィルターフック

add_filter(フック名, 関数名, プライオリティ, オプション)
引数はアクションフックと同じです。実は add_action は add_filter の別名です。将来は別の処理がされるかもしれませんが、WordPress2.5 までは同じ処理をしています。

アクションフックの例

email_friends という関数を作成し投稿があったら実行するようにアクションフックを設定します。

function email_friends($post_ID)  {
    $friends = 'bob@example.org,susie@example.org';
    mail($friends,"sally's blog updated",'I just put something on my blog: ~http://blog.example.com');
    return $post_ID;
}
add_action('publish_post','email_friends');

フィルターフックの例

テーマの function.php に hoge_header 関数を作成、wp_head というヘッダテンプレート(header.php) を出力するフィルターにフックします。

function hoge_header() {
	/* echo などで CSS や JavaScript などを出力 */
}
add_filter('wp_head', 'hoge_header');

これだけだと header.php に書けばよさそうですが、例えば単独の記事を表示するときだけ出力するなどが header.php を汚さずに可能です。

参考 URL
Plugin API ? WordPress Codex

関連する投稿