do_action
Execute functions hooked on a specific action hook.
Description
This function invokes all functions attached to action hook $tag
.. It is possible to create new action hooks by simply calling this function, specifying the name of the new hook using the $tag
. parameter.
You can pass extra arguments to the hooks, much like you can with apply_filters(…)
.
Parameters (2)
- 0. $tag (string)
- The name of the action to be executed.
- 1. $arg — Optional. (string) =>
''
- Additional arguments which are passed on to the functions hooked to the action. Default empty.
Usage
if ( !function_exists( 'do_action' ) ) { require_once ABSPATH . WPINC . '/plugin.php'; } // The name of the action to be executed. $tag = ''; // Optional. Additional arguments which are passed on to the // functions hooked to the action. Default empty. $arg = ''; // NOTICE! Understand what this does before running. $result = do_action($tag, $arg);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/plugin.php
- function do_action($tag, $arg = '') {
- global $wp_filter, $wp_actions, $wp_current_filter;
- if ( ! isset($wp_actions[$tag]) )
- $wp_actions[$tag] = 1;
- else
- ++$wp_actions[$tag];
- // Do 'all' actions first
- if ( isset($wp_filter['all']) ) {
- $wp_current_filter[] = $tag;
- $all_args = func_get_args();
- _wp_call_all_hook($all_args);
- }
- if ( !isset($wp_filter[$tag]) ) {
- if ( isset($wp_filter['all']) )
- array_pop($wp_current_filter);
- return;
- }
- if ( !isset($wp_filter['all']) )
- $wp_current_filter[] = $tag;
- $args = array();
- if ( is_array($arg) && 1 == count($arg) && isset($arg[0]) && is_object($arg[0]) ) // array(&$this)
- $args[] =& $arg[0];
- else
- $args[] = $arg;
- for ( $a = 2, $num = func_num_args(); $a < $num; $a++ )
- $args[] = func_get_arg($a);
- $wp_filter[ $tag ]->do_action( $args );
- array_pop($wp_current_filter);
- }