- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
「関数リファレンス/add action」の版間の差分
({{原文|Function Reference/do_action|76444}}<!-- 21:07, 29 July 2009 Brentes 版 -->) |
細 (翻訳済み) |
||
(5人の利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
− | == | + | == 説明 == |
− | + | 特定の[[Glossary#Actions|アクション]]に関数をフックします。 | |
− | + | この関数は [[関数リファレンス/add_filter|add_filter()]] のエイリアスです。 | |
− | + | アクションフックの一覧については[[プラグイン_API/アクションフック一覧|アクションフック一覧]]をご覧ください。アクションは(通常は)WordPress コアが [[関数リファレンス/do_action|do_action()]] を呼び出すときにトリガーされます。 | |
− | + | == 使い方 == | |
− | + | <?php add_action( $hook, $function_to_add, $priority, $accepted_args ); ?> | |
− | + | == パラメータ == | |
− | + | ||
− | + | ||
− | + | ||
− | + | {{Parameter|$hook|文字列|$function_to_add がフックされるアクション名。アクションフック名一に覧ついては [[プラグイン API/アクションフック一覧]] を参照。テーマまたはプラグインファイル内のアクション名も指定できる。または特別なタグ "all" を使えば、すべてのフックで関数が呼び出される。}} | |
− | === | + | {{Parameter|$function_to_add|コールバック|フックする関数名。注: [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback 'callback' タイプとして PHP ドキュメンテーションに掲載されている]文字列形式構文のみが有効}} |
− | + | ||
+ | {{Parameter|$priority|整数|特定のアクションに関連づけられている関数が実行される優先順序を指定する。少ない数であれば早く実行され、同じ数の優先度である関数はアクションに追加された順序で実行される。|オプション|10}} | ||
+ | |||
+ | {{Parameter|$accepted_args|整数|フックした関数が受け入れられる引数の数。WordPress 1.5.1 以降では、フックした関数は、対応する [[関数リファレンス/do_action|do_action()]] あるいは [[関数リファレンス/apply_filters|apply_filters()]] が実行される時に、余分に引数を取ることができます。例えば、アクション <tt>comment_id_not_found</tt> は、これにフックする関数に、リクエストされたコメントの ID を渡すことができます。|オプション|1}} | ||
+ | |||
+ | == 戻り値 == | ||
+ | ; <tt>(boolean)</tt> : 常に true。 | ||
+ | |||
+ | == 用例 == | ||
+ | |||
+ | === 単純なフック === | ||
+ | ブログに投稿したときに、メールで友人に知らせます。 | ||
<pre> | <pre> | ||
− | function email_friends($post_ID) { | + | function email_friends( $post_ID ) { |
$friends = 'bob@example.org, susie@example.org'; | $friends = 'bob@example.org, susie@example.org'; | ||
− | + | wp_mail( $friends, "sally's blog updated", 'I just put something on my blog: http://blog.example.com' ); | |
+ | |||
return $post_ID; | return $post_ID; | ||
} | } | ||
+ | add_action( 'publish_post', 'email_friends' ); | ||
+ | </pre> | ||
− | add_action(' | + | === 利用できる引数 === |
+ | フックした関数は、オプションとしてアクションコールから引数を受け入れることができます(引数が渡されるように設定されている場合)。以下の単純化したサンプルでは、<code>echo_comment_id</code> 関数は <code>$comment_id</code> 引数を受け取ります。これは、[[関数リファレンス/do_action|do_action()]] コールを実行する際に <code>comment_id_not_found</code> を使っている場合に自動的に渡される引数です。 | ||
+ | |||
+ | <pre> | ||
+ | function echo_comment_id( $comment_id ) { | ||
+ | echo 'Comment ID ' . $comment_id . ' could not be found'; | ||
+ | } | ||
+ | add_action( 'comment_id_not_found', 'echo_comment_id', 10, 1 ); | ||
</pre> | </pre> | ||
− | == | + | == 注 == |
− | + | ||
+ | フックしたい関数の引数の数および名称を見つけたいときは、コアのコード内で一致する <code>do_action()</code> コールを探します。たとえば、<code>'save_post'</code> 関数にフックしたいときは、<code>post.php</code> で次の行を探しましょう。 | ||
+ | |||
+ | <?php do_action( 'save_post', $post_ID, $post, $update ); ?> | ||
+ | |||
+ | add_actionの呼び出しは次のようになります。 | ||
+ | |||
+ | <?php add_action( 'save_post', 'my_save_post', 10, 3 ); ?> | ||
+ | |||
+ | そして関数は以下のようになります。 | ||
<pre> | <pre> | ||
− | function | + | function my_save_post( $post_ID, $post, $update ) { |
− | + | // do stuff here | |
} | } | ||
− | |||
</pre> | </pre> | ||
− | == | + | === add_action をクラス内で使う === |
+ | <code>add_action</code> フックをクラスを使って構築されたプラグインやテーマ内で使うには、<code>add_action</code> コール内にそのクラスの関数名とともに <code>$this</code> を追加してください。以下はその例です。 | ||
− | + | <pre> | |
+ | class MyPluginClass { | ||
+ | public function __construct() { | ||
+ | //add your actions to the constructor! | ||
+ | add_action( 'save_post', array( $this, 'myplugin_save_posts' ) ); | ||
+ | } | ||
+ | |||
+ | public function myplugin_save_posts() { | ||
+ | //do stuff here... | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
− | + | == 更新履歴 == | |
− | + | [[Version 1.2|1.2.0]] 以降 | |
− | + | == ソースファイル == | |
− | {{ | + | <tt>add_action()</tt> は {{Trac|wp-includes/plugin.php}} にあります。 |
== 関連資料 == | == 関連資料 == | ||
59行目: | 97行目: | ||
{{Tag Footer}} | {{Tag Footer}} | ||
+ | {{原文|Function Reference/add_action|141627}} | ||
{{DEFAULTSORT:Add_action}} | {{DEFAULTSORT:Add_action}} | ||
− | [[Category: | + | [[Category:関数]] |
+ | |||
+ | [[en:Function_Reference/add_action]] | ||
+ | [[ko:한국어/add_action]] | ||
+ | [[zh-hans:函数参考/add_action]] |
2015年5月11日 (月) 22:11時点における最新版
目次
説明
特定のアクションに関数をフックします。
この関数は add_filter() のエイリアスです。
アクションフックの一覧についてはアクションフック一覧をご覧ください。アクションは(通常は)WordPress コアが do_action() を呼び出すときにトリガーされます。
使い方
<?php add_action( $hook, $function_to_add, $priority, $accepted_args ); ?>
パラメータ
- $hook
- (文字列) (必須) $function_to_add がフックされるアクション名。アクションフック名一に覧ついては プラグイン API/アクションフック一覧 を参照。テーマまたはプラグインファイル内のアクション名も指定できる。または特別なタグ "all" を使えば、すべてのフックで関数が呼び出される。
- 初期値: なし
- $function_to_add
- (コールバック) (必須) フックする関数名。注: 'callback' タイプとして PHP ドキュメンテーションに掲載されている文字列形式構文のみが有効
- 初期値: なし
- $priority
- (整数) (オプション) 特定のアクションに関連づけられている関数が実行される優先順序を指定する。少ない数であれば早く実行され、同じ数の優先度である関数はアクションに追加された順序で実行される。
- 初期値: 10
- $accepted_args
- (整数) (オプション) フックした関数が受け入れられる引数の数。WordPress 1.5.1 以降では、フックした関数は、対応する do_action() あるいは apply_filters() が実行される時に、余分に引数を取ることができます。例えば、アクション comment_id_not_found は、これにフックする関数に、リクエストされたコメントの ID を渡すことができます。
- 初期値: 1
戻り値
- (boolean)
- 常に true。
用例
単純なフック
ブログに投稿したときに、メールで友人に知らせます。
function email_friends( $post_ID ) { $friends = 'bob@example.org, susie@example.org'; wp_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' );
利用できる引数
フックした関数は、オプションとしてアクションコールから引数を受け入れることができます(引数が渡されるように設定されている場合)。以下の単純化したサンプルでは、echo_comment_id
関数は $comment_id
引数を受け取ります。これは、do_action() コールを実行する際に comment_id_not_found
を使っている場合に自動的に渡される引数です。
function echo_comment_id( $comment_id ) { echo 'Comment ID ' . $comment_id . ' could not be found'; } add_action( 'comment_id_not_found', 'echo_comment_id', 10, 1 );
注
フックしたい関数の引数の数および名称を見つけたいときは、コアのコード内で一致する do_action()
コールを探します。たとえば、'save_post'
関数にフックしたいときは、post.php
で次の行を探しましょう。
<?php do_action( 'save_post', $post_ID, $post, $update ); ?>
add_actionの呼び出しは次のようになります。
<?php add_action( 'save_post', 'my_save_post', 10, 3 ); ?>
そして関数は以下のようになります。
function my_save_post( $post_ID, $post, $update ) { // do stuff here }
add_action をクラス内で使う
add_action
フックをクラスを使って構築されたプラグインやテーマ内で使うには、add_action
コール内にそのクラスの関数名とともに $this
を追加してください。以下はその例です。
class MyPluginClass { public function __construct() { //add your actions to the constructor! add_action( 'save_post', array( $this, 'myplugin_save_posts' ) ); } public function myplugin_save_posts() { //do stuff here... } }
更新履歴
1.2.0 以降
ソースファイル
add_action() は wp-includes/plugin.php
にあります。
関連資料
アクション: has_action(), add_action(), do_action(), do_action_ref_array(), did_action(), remove_action(), remove_all_actions()
最新英語版: WordPress Codex » Function Reference/add_action (最新版との差分)