• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「関数リファレンス/add action」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
({{原文|Function Reference/do_action|76444}}<!-- 21:07, 29 July 2009 Brentes 版 -->)
 
(翻訳済み)
 
(5人の利用者による、間の7版が非表示)
1行目: 1行目:
== Description ==
+
== 説明 ==
  
Hooks a function on to a specific [[プラグイン_API#Actions|action]].
+
特定の[[Glossary#Actions|アクション]]に関数をフックします。
  
See [[プラグイン_API/Action_Reference|Plugin API/Action Reference]] for a list of hooks for action. Actions are (usually) triggered when the Wordpress core calls [[関数リファレンス/do_action|do_action()]].
+
この関数は [[関数リファレンス/add_filter|add_filter()]] のエイリアスです。
  
== Usage ==
+
アクションフックの一覧については[[プラグイン_API/アクションフック一覧|アクションフック一覧]]をご覧ください。アクションは(通常は)WordPress コアが [[関数リファレンス/do_action|do_action()]] を呼び出すときにトリガーされます。
  
%%% <?php add_action( $tag, $function_to_add, $priority, $accepted_args ); ?> %%%
+
== 使い方 ==
  
== Parameters ==
+
<?php add_action( $hook, $function_to_add, $priority, $accepted_args ); ?>
  
{{Parameter|$tag|string|The name of the action you wish to hook onto. (See [[Plugin_API/Action_Reference|Plugin API/Action Reference]] for a list of action hooks)}}
+
== パラメータ ==
{{Parameter|$function_to_add|callback|The name of the function you wish to be called. Note: any of the syntaxes explained in [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback the PHP documentation for the 'callback' type] are valid.}}
+
{{Parameter|$priority|int|How important your function is. Alter this to make your function be called before or after other functions. The default is 10, so (for example) setting it to 5 would make it run earlier and setting it to 12 would make it run later.|optional|10}}
+
{{Parameter|$accepted_args|int|How many arguments your function takes. In WordPress 1.5.1+, hooked functions can take extra arguments that are set when the matching [[Function_Reference/do_action|do_action()]] or apply_filters() call is run. For example, the action <tt>comment_id_not_found</tt> will pass any functions that hook onto it the ID of the requested comment.|optional|1}}
+
  
== Examples ==
+
{{Parameter|$hook|文字列|$function_to_add がフックされるアクション名。アクションフック名一に覧ついては [[プラグイン API/アクションフック一覧]] を参照。テーマまたはプラグインファイル内のアクション名も指定できる。または特別なタグ "all" を使えば、すべてのフックで関数が呼び出される。}}
  
=== Simple Hook ===
+
{{Parameter|$function_to_add|コールバック|フックする関数名。注: [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback 'callback' タイプとして PHP ドキュメンテーションに掲載されている]文字列形式構文のみが有効}}
To email some friends whenever an entry is posted on your blog:
+
 
 +
{{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';
   mail($friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com');
+
   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('publish_post', 'email_friends');
+
=== 利用できる引数 ===
 +
フックした関数は、オプションとしてアクションコールから引数を受け入れることができます(引数が渡されるように設定されている場合)。以下の単純化したサンプルでは、<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>
  
=== Take Arguments ===
+
== ==
The hooked function takes one argument from the action. Specifically, the 'echo_comment_id' function, takes the argument $comment_ID. It then echos the value of the received argument.
+
 
 +
フックしたい関数の引数の数および名称を見つけたいときは、コアのコード内で一致する <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 echo_comment_id($comment_ID) {
+
function my_save_post( $post_ID, $post, $update ) {
   echo "I just received $comment_ID";
+
   // do stuff here
 
}
 
}
add_action('comment_id_not_found','echo_comment_id', 10, 1);
 
 
</pre>
 
</pre>
  
== Notes ==
+
=== add_action をクラス内で使う ===
 +
<code>add_action</code> フックをクラスを使って構築されたプラグインやテーマ内で使うには、<code>add_action</code> コール内にそのクラスの関数名とともに <code>$this</code> を追加してください。以下はその例です。
  
== Change Log ==
+
<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>
  
Since: 1.2.0
+
== 更新履歴 ==
  
== Source File ==
+
[[Version 1.2|1.2.0]] 以降
  
<tt>add_action()</tt> is located in {{Trac|wp-includes/plugin.php}}.
+
== ソースファイル ==
  
{{原文|Function Reference/do_action|76444}}<!-- 21:07, 29 July 2009 Brentes 版 -->
+
<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:Functions]]
+
[[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最新版との差分