Codex tools: Log in
Languages: English • 日本語 • 中文(简体) • 한국어 • (Add your language)
Contents |
Hooks a function on to a specific action.
See Plugin API/Action Reference for a list of action hooks. Actions are (usually) triggered when the WordPress core calls do_action().
<?php
add_action( $tag, $function_to_add, $priority,
$accepted_args );
?>
To email some friends whenever an entry is posted on your blog:
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' );
A hooked function can optionally accept arguments from the action call, if any are set to be passed. In this simplistic example, the echo_comment_id function takes the $comment_id argument, which is automatically passed to when the do_action() call using the comment_id_not_found filter hook is run.
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 );
To find out the number and name of arguments for an action, simply search the code base for the matching do_action() call. For example, if you are hooking into 'save_post', you would find it in post.php:
<?php do_action( 'save_post', $post_ID, $post ); ?>
Your add_action call would look like:
<?php add_action( 'save_post', 'my_save_post', 10, 2 ); ?>
And your function would be:
function my_save_post( $post_ID, $post )
{
// do stuff here
}
To use the add_action hook when your plugin or theme is built up using classes, add $this to your add_action call together with the function name within that class, like so:
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...
}
}
Since 1.2.0
add_action() is located in wp-includes/plugin.php.
Actions: has_action(), add_action(), do_action(), do_action_ref_array(), did_action(), remove_action(), remove_all_actions()