フック WordPress

なわて投稿サムネイル

フックとは

フック = hook = 鍵爪

hook into = 引っ張り込む

特定のタイミングでWordPress本体のソフトに別の機能(関数)を引っ張り込む仕組み。

特定のタイミングとは、

①あらかじめWordPress本体で定義されている場合。

②自分でタイミングを定義した場合。

( do_action() / apply_filters() )

 

関数を呼び出すために関数。

別の表現:フックするための関数を登録するための関数。

( add_action()  /  add_filter() )

 

定義されているタイミングで関数を呼び出す仕組み。

 

 

フックのメリット

WordPressのコアファイルに変更を加えると更新のたびに再度変更しなくてはならない。

更新されても変更されないファイルにフックを使うことで更新に影響されない関数を設定できる。

 

フックの種類と働き

①アクションフック ②フィルターフック

 

do_action()とapply_filters()

※テーマカスタマイズには使用しない。

フックそのものをそのものを作るための関数。

WordPressがフックの原型を用意してある。

ただし、自分のオリジナルフックを作成することは可。

 

add_action()とadd_filter()

※テーマカスタマイズの際に使用する関数。

WordPressが用意してあるアクションフックとフィルターフックに関数を登録する際に使う関数。。

functions.phpに記載する。

 

アクションフック

特定のタイミング:

実行中の特定のポイント。

特定のイベント発生時。

 

関数の呼び出し:

1つ以上のPHP関数の実行を指定できる。

 

例)

<head></head>を出力しているタイミングで、追加の<meta>要素を追加する。

処理の追加。

参照:WordPress Codex

 

アクションフックを作成する関数。

※基本的にWordPressのコアファイルで定義されている。

自作で定義することもできる。

do_action()

構文

do_action(①アクションフック名, ②[オプション]追加の変数)

参照:WordPress Codex

do_action()の詳細

 動 作 

アクションフックを作成(定義)

 返り値 

値を返さない。

 引 数 

①実行したいアクションフックの名前。

②フックに送る関数のリスト デフォルト:空の文字列

do_action()を使ったコード例

 実装 

 

アクションフックに関数を登録するための関数。

※基本的にfunctions.phpで定義する。

add_action()

構文

add_action(
①アクションフック名,
②処理する関数,
③[オプション]優先度,
④[オプション]関数に渡す変数の数
);

参照:WordPress Codex

add_action()の詳細

 動 作 

do_action()で定義したアクションフックに、処理を追加する。

 返り値 
常にtrue
 引 数 

①アクションフック名:

WordPressによって提供されているアクションフックの名称。

イベントと関数の関連性を示す。

参照:WordPress Codex-アクションフック一覧

②処理する関数:

イベントに続いて実行させたい関数名。

()は不要。

フックした時に実行する関数。

③関数が実行される優先順位 デフォルト:10

④デフォルト:1

add_action()を使ったコード例

 実装 

アクションフック一覧

参照:WordPress Codex

アクションフック名 概要
wp_enqueue_scripts scriptとstyleをエンキューできる。
フックされた関数内で、
wp_enqueue_script()
wp_enqueue_style()
wp_register_script()
wp_register_style()が使用できる。
after_setup_theme

アクションフックで使われる関数

wp_enqueue_script()

wp_enqueue_style()

 

フィルターフック

特定のタイミング:

データベースに追加する前。

ブラウザのスクリーンに送り出す前。

 

関数の呼び出し:

1つ以上のPHP関数の実行を指定できる。

 

文字列を変更する場合に使う。

※値を返す。

参照:WordPress Codex

 

フィルターフックを作成する関数

基本的にWordPress本体で定義されている。

例)wp-inculudes/formatting.php

自作で定義することもできる。

 

apply_filters()

構文

apply_filters(

①フィルターフック名,

②フックに渡す変数,

③[オプション]追加の変数

)

参照:WordPress Codex

apply_filters()の詳細

 動 作 

フィルターフックを作成する。

 返り値 

①のフィルターフックに全てのフィルター関数を適用した結果。

 引 数 

①フィルターフック名:

登録するフィルターフック名

②フックに渡す変数:

①に登録されたフィルター関数が変更することができる値。

③[オプション]追加の変数:

フィルター関数に渡す追加の変数。

[デフォルト]なし

 

apply_filters()を使ったコード例

 実装 

フィルターフックに関数を登録するための関数

add_filter()

構文

add_filter(

①フィルターフック名,

②処理する関数,

③[オプション]優先度,

④[オプション]関数に渡す変数の数

)

参照:WordPress Codex

add_filter()の詳細

 動 作 

指定したフィルターフックに関数を登録する。

 返り値 

フィルターフックに登録できるとtrue、できなければfalse。

 引 数 

①フィルターフック名:

WordPressによって定義されているフィルターフックの名称。

フィルターが適用されるタイミングを定義。

参照:WordPress Codex-フィルターフック一覧

②処理する関数:

フィルターフックに使用する関数。

③[オプション]優先度:

[デフォルト:10]

④[オプション]関数に渡す変数の数:

[デフォルト:1]

add_filter()を使ったコード例

 実装