- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
「関数リファレンス/add action」の版間の差分
(→注: 節の和訳。初めての編集なのでちょっとドキドキ。) |
(2013-10-13T21:37:05 Tw2113 版に更新。) |
||
1行目: | 1行目: | ||
− | {{NeedTrans| | + | {{NeedTrans|一部}} |
== 説明 == | == 説明 == | ||
− | 特定の[[ | + | 特定の[[Glossary#Actions|アクション]]に関数をフックします。 |
− | + | アクションフックの一覧については[[プラグイン_API/アクションフック一覧|アクションフック一覧]]をご覧ください。アクションは(通常は)WordPress コアが [[関数リファレンス/do_action|do_action()]] を呼び出すときにトリガーされます。 | |
== 使い方 == | == 使い方 == | ||
12行目: | 12行目: | ||
== パラメータ == | == パラメータ == | ||
− | {{Parameter|$ | + | {{Parameter|$hook|文字列|$function_to_add がフックされるアクション名。アクションフック名一に覧ついては [[プラグイン API/アクションフック一覧]] を参照。テーマまたはプラグインファイル内のアクション名も指定できる。または特別なタグ "all" を使えば、すべてのフックで関数が呼び出される。}} |
− | {{Parameter|$function_to_add|コールバック| | + | |
− | {{Parameter|$priority|整数| | + | {{Parameter|$function_to_add|コールバック|フックする関数名。注: [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback 'callback' タイプとして PHP ドキュメンテーションに掲載されている]文字列形式構文のみが有効}} |
− | {{Parameter|$accepted_args|整数| | + | |
+ | {{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。 | ||
== 用例 == | == 用例 == | ||
23行目: | 29行目: | ||
<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' ); | |
− | add_action('publish_post', 'email_friends'); | + | |
</pre> | </pre> | ||
− | === | + | === 利用できる引数 === |
− | + | フックした関数は、オプションとしてアクションコールから引数を受け入れることができます(引数が渡されるように設定されている場合)。以下の単純化したサンプルでは、<code>echo_comment_id</code> 関数は <code>$comment_id</code> 引数を受け取ります。これは、[[関数リファレンス/do_action|do_action()]] コールを実行する際に <code>comment_id_not_found</code> を使っている場合に自動的に渡される引数です。 | |
<pre> | <pre> | ||
− | function echo_comment_id($ | + | function echo_comment_id( $comment_id ) |
− | echo | + | { |
+ | echo 'Comment ID ' . $comment_id . ' could not be found'; | ||
} | } | ||
− | add_action('comment_id_not_found','echo_comment_id', 10, 1); | + | 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> で次の行を探しましょう。 | |
− | + | ||
− | do_action('save_post', $post_ID, $post); | + | <?php do_action( 'save_post', $post_ID, $post ); ?> |
add_actionの呼び出しは次のようになります。 | add_actionの呼び出しは次のようになります。 | ||
− | add_action('save_post', 'my_save_post'); | + | <?php add_action( 'save_post', 'my_save_post', 10, 2 ); ?> |
そして関数は以下のようになります。 | そして関数は以下のようになります。 | ||
− | + | <pre> | |
− | + | function my_save_post( $post_ID, $post ) | |
− | + | { | |
+ | // do stuff here | ||
+ | } | ||
+ | </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> | ||
+ | |||
== 更新履歴 == | == 更新履歴 == | ||
− | 1.2.0 以降 | + | [[Version 1.2|1.2.0]] 以降 |
== ソースファイル == | == ソースファイル == | ||
75行目: | 105行目: | ||
{{Tag Footer}} | {{Tag Footer}} | ||
+ | {{原文|Function Reference/do_action|137012}}<!-- 2013-10-13T21:37:05 Tw2113 版 --> | ||
{{DEFAULTSORT:Add_action}} | {{DEFAULTSORT:Add_action}} | ||
[[Category:関数]] | [[Category:関数]] | ||
[[en:Function_Reference/add_action]] | [[en:Function_Reference/add_action]] | ||
+ | [[ko:한국어/add_action]] | ||
[[zh-hans:函数参考/add_action]] | [[zh-hans:函数参考/add_action]] |
2013年11月7日 (木) 14:28時点における版
このページ「関数リファレンス/add action」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています。
目次
説明
特定のアクションに関数をフックします。
アクションフックの一覧についてはアクションフック一覧をご覧ください。アクションは(通常は)WordPress コアが do_action() を呼び出すときにトリガーされます。
使い方
<?php add_action( $tag, $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 ); ?>
add_actionの呼び出しは次のようになります。
<?php add_action( 'save_post', 'my_save_post', 10, 2 ); ?>
そして関数は以下のようになります。
function my_save_post( $post_ID, $post ) { // 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
にあります。
最新英語版: WordPress Codex » Function Reference/do_action
関連資料
アクション: has_action(), add_action(), do_action(), do_action_ref_array(), did_action(), remove_action(), remove_all_actions()
最新英語版: WordPress Codex » Function Reference/do_action (最新版との差分)