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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(注: 節の和訳。初めての編集なのでちょっとドキドキ。)
(2013-10-13T21:37:05 Tw2113 版に更新。)
1行目: 1行目:
{{NeedTrans|}}
+
{{NeedTrans|一部}}
 
== 説明 ==
 
== 説明 ==
  
特定の[[プラグイン_API#Actions|アクション]]に関数をフックします。
+
特定の[[Glossary#Actions|アクション]]に関数をフックします。
  
アクションフックの一覧は [[プラグイン_API/アクションフック一覧|アクションフック一覧]] をごらんください。アクションは(通常は) WordPress コアが [[関数リファレンス/do_action|do_action()]] を呼び出すときにトリガーされます。
+
アクションフックの一覧については[[プラグイン_API/アクションフック一覧|アクションフック一覧]]をご覧ください。アクションは(通常は)WordPress コアが [[関数リファレンス/do_action|do_action()]] を呼び出すときにトリガーされます。
  
 
== 使い方 ==
 
== 使い方 ==
12行目: 12行目:
 
== パラメータ ==
 
== パラメータ ==
  
{{Parameter|$tag|文字列|フックするアクション名 (アクションの一覧は [[プラグイン_API/アクションフック一覧|アクションフック一覧]] を参照)}}
+
{{Parameter|$hook|文字列|$function_to_add がフックされるアクション名。アクションフック名一に覧ついては [[プラグイン API/アクションフック一覧]] を参照。テーマまたはプラグインファイル内のアクション名も指定できる。または特別なタグ "all" を使えば、すべてのフックで関数が呼び出される。}}
{{Parameter|$function_to_add|コールバック|呼び出す関数名。注: any of the syntaxes explained in [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback 'callback' タイプについてのドキュメント] で説明される構文は全て有効です。}}
+
 
{{Parameter|$priority|整数|関数の重要度です。呼び出す関数と他の関数との順序を変更します。デフォルト値は 10 で、例えば 5 に設定すると早く実行され、12 に設定すると遅く実行されます。|オプション|10}}
+
{{Parameter|$function_to_add|コールバック|フックする関数名。注: [http://us2.php.net/manual/en/language.pseudo-types.php#language.types.callback 'callback' タイプとして PHP ドキュメンテーションに掲載されている]文字列形式構文のみが有効}}
{{Parameter|$accepted_args|整数|関数の引数の数です。WordPress 1.5.1+ では、フックした関数は、対応する [[関数リファレンス/do_action|do_action()]] あるいは [[関数リファレンス/apply_filters|apply_filters()]] が実行される時に、余分に引数を取ることができます。例えば、アクション <tt>comment_id_not_found</tt> は、これにフックする関数に、リクエストされたコメントの ID を渡すことができます。|オプション|1}}
+
 
 +
{{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';
   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' );
add_action('publish_post', 'email_friends');
+
 
</pre>
 
</pre>
  
=== 引数を取る ===
+
=== 利用できる引数 ===
フックした関数は、アクションから引数を 1 つ取ります。特に 'echo_comment_id' 関数は、$comment_ID を取ります。この例は、受け取った引数の値を画面に表示します。
+
フックした関数は、オプションとしてアクションコールから引数を受け入れることができます(引数が渡されるように設定されている場合)。以下の単純化したサンプルでは、<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($comment_ID) {
+
function echo_comment_id( $comment_id )  
   echo "I just received $comment_ID";
+
{
 +
   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 base'より該当する関数のdo_action()を探します。
+
フックしたい関数の引数の数および名称を見つけたいときは、コアのコード内で一致する <code>do_action()</code> コールを探します。たとえば、<code>'save_post'</code> 関数にフックしたいときは、<code>post.php</code> で次の行を探しましょう。
たとえば、'save_post'関数にフックしたいとき、post.phpに次の行を見つけることができます。
+
  
  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 ); ?>
  
 
そして関数は以下のようになります。
 
そして関数は以下のようになります。
  
function my_save_post($post_ID, $post) {
+
<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最新版との差分