2012.2.26
WordPressのアクション(&フィルタ)に若干苦手意識を持っています。
「プラグイン API/アクションフック一覧 – WordPress Codex 日本語版」を見ても、用意されたアクションがどう動くのかがいまいちピンとこないからなのかなと思いました。
なので勉強&備忘録の意味でよく使いそう?なアクションを自分なりにまとめてみることにしました。随時追加していく形になると思います。
アクションフック、フィルターフックの概要については書きません。概要については以下が参考になると思います。また、フィルターフックについても書きません。やるとしたら別記事でまとめたいですね。
例えば、記事を公開したら特定の人にメールしたいとか、twitterへ飛ばしたい時などに使えそう。
add_action('publish_post', 'hoge');
function hoge(){
//ここに処理
}
この時点で実行したいPHP処理を記述する時に便利そう。
独自Javascriptの読み込みをしたい場合は後述の「wp_print_scripts」を使うのがいいみたいです。
独自CSSの読み込みをしたい場合は後述の「wp_print_styles」を使うのがいいみたいです。
add_action('wp_head', 'hoge');
function hoge() {
//ここに処理
}
この時点で実行したいPHP処理(実質ページ表示前にしたい処理)を記述する時に便利そう。get_header()は大体テーマの一番上に書きますからね。
ちょっとややこしいですが、get_header()はテンプレートheader.phpを読み込む直前、wp_head()はwp_head()が書かれた直前で読み込みます。
add_action('get_header', 'hoge');
function hoge() {
//ここに処理
}
この時点で処理したいPHPの記述に使えそう。ここでjavascriptを読み込ませる場合は、後述の「wp_print_footer_scripts」を使うのがいいみたいです。
add_action('wp_footer', 'hoge');
function hoge() {
//ここに処理
}
この時点で実行したいPHP処理を記述する時に便利そう。
ちょっとややこしいですが、get_footer()はテンプレートfooter.phpを読み込む直前、wp_footer()はwp_footer()が書かれた直前で読み込みます。
add_action('get_footer', 'hoge');
function hoge() {
//ここに処理
}
この記事はアクションフックの説明なので簡単な記述にとどめていますが、実際は以下のような流れを作る必要があります。いつか別記事を書きたいですね。
add_action('wp_print_scripts', 'hoge');
function hoge() {
//ここに処理
}
add_action('wp_print_footer_scripts', 'fuga');
function fuga() {
//ここに処理
}
この記事はアクションフックの説明なので簡単な記述にとどめていますが、実際は以下のような流れを作る必要があります。wp_print_scriptsとやっていることは同じです。(JSかCSSかの違いです。)ここもいつか別記事を書きたいですね。
add_action('wp_print_styles', 'hoge');
function hoge() {
//ここに処理
}
管理画面専用外部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 '
';
}
[itemlink post_id=”1951″]