0017

WordPressアクションフック自分用まとめ

WordPressアクションフック自分用まとめ

2012.2.26

WordPressのアクション(&フィルタ)に若干苦手意識を持っています。
プラグイン API/アクションフック一覧 – WordPress Codex 日本語版」を見ても、用意されたアクションがどう動くのかがいまいちピンとこないからなのかなと思いました。

なので勉強&備忘録の意味でよく使いそう?なアクションを自分なりにまとめてみることにしました。随時追加していく形になると思います。

はじめに

アクションフック、フィルターフックの概要については書きません。概要については以下が参考になると思います。また、フィルターフックについても書きません。やるとしたら別記事でまとめたいですね。

記事を公開した時に実行

例えば、記事を公開したら特定の人にメールしたいとか、twitterへ飛ばしたい時などに使えそう。

add_action('publish_post', 'hoge');
function hoge(){
    //ここに処理
}

関数「wp_head()」がコールされた時に実行

この時点で実行したいPHP処理を記述する時に便利そう。
独自Javascriptの読み込みをしたい場合は後述の「wp_print_scripts」を使うのがいいみたいです。
独自CSSの読み込みをしたい場合は後述の「wp_print_styles」を使うのがいいみたいです。

add_action('wp_head', 'hoge');
function hoge() {
    //ここに処理
}

関数「get_header()」でテンプレートを読み込む直前に実行する

この時点で実行したいPHP処理(実質ページ表示前にしたい処理)を記述する時に便利そう。get_header()は大体テーマの一番上に書きますからね。

ちょっとややこしいですが、get_header()はテンプレートheader.phpを読み込む直前、wp_head()はwp_head()が書かれた直前で読み込みます。

add_action('get_header', 'hoge');
function hoge() {
    //ここに処理
}

関数「wp_footer()」がコールされた時に実行

この時点で処理したいPHPの記述に使えそう。ここでjavascriptを読み込ませる場合は、後述の「wp_print_footer_scripts」を使うのがいいみたいです。

add_action('wp_footer', 'hoge');
function hoge() {
    //ここに処理
}

関数「get_footer()」でテンプレートを読み込む直前に実行する

この時点で実行したいPHP処理を記述する時に便利そう。
ちょっとややこしいですが、get_footer()はテンプレートfooter.phpを読み込む直前、wp_footer()はwp_footer()が書かれた直前で読み込みます。

add_action('get_footer', 'hoge');
function hoge() {
    //ここに処理
}

head要素(もしくはfooter要素)内で独自javascriptを読み込む

この記事はアクションフックの説明なので簡単な記述にとどめていますが、実際は以下のような流れを作る必要があります。いつか別記事を書きたいですね。

  1. admin以外の時に処理をするif文
  2. wp_register_script()関数でjsファイルを登録
  3. wp_enqueue_script()関数で重複jsファイルを整頓
  4. wp_print_scripts(またはwp_print_footer_scripts)フックで出力
add_action('wp_print_scripts', 'hoge');
function hoge() {
    //ここに処理
}
add_action('wp_print_footer_scripts', 'fuga');
function fuga() {
    //ここに処理
}

head要素内で独自CSSを読み込む

この記事はアクションフックの説明なので簡単な記述にとどめていますが、実際は以下のような流れを作る必要があります。wp_print_scriptsとやっていることは同じです。(JSかCSSかの違いです。)ここもいつか別記事を書きたいですね。

  1. admin以外の時に処理をするif文
  2. wp_register_style()関数でjsファイルを登録
  3. wp_enqueue_style()関数で重複jsファイルを整頓
  4. wp_print_stylesフックで出力
add_action('wp_print_styles', 'hoge');
function hoge() {
    //ここに処理
}

管理画面のhead要素が読み込み時に実行

管理画面専用外部JavascriptやCSSファイルを読み込ませて、ビジュアルエディタを制御したり、プラグインをjQueryで動かすような処理をする時に使えそう。

add_action ('admin_head','hoge');
function hoge(){
    //ここに処理
}

管理画面の左メニューに項目を追加

プラグイン作成時に、左メニューに独自の項目を追加したい時に使えそう。

ちなみに「ツール」に追加したい時はadd_options_page部分をadd_management_pageに、「外観」に追加したい時はadd_options_page部分をadd_theme_pageにするそうです。

add_action ('admin_menu','hoge');
function hoge(){
    add_options_page('OptionTest', 'メニューテスト', 8, __FILE__, 'fuga');
}
//オプションページに表示したいhtmlを記述
function fuga() {
  echo '
'; echo '

設定画面だよ';

echo '

';
}