do_action( string $hook_name, mixed $arg )

Calls the callback functions that have been added to an action hook.


Description

This function invokes all functions attached to action hook $hook_name.
It is possible to create new action hooks by simply calling this function, specifying the name of the new hook using the $hook_name parameter.

You can pass extra arguments to the hooks, much like you can with apply_filters().

Example usage:

// The action callback function.
function example_callback( $arg1, $arg2 ) {
    // (maybe) do something with the args.
}
add_action( 'example_action', 'example_callback', 10, 2 );

/*
 * Trigger the actions by calling the 'example_callback()' function
 * that's hooked onto `example_action` above.
 *
 * - 'example_action' is the action hook.
 * - $arg1 and $arg2 are the additional arguments passed to the callback.
do_action( 'example_action', $arg1, $arg2 );

Parameters

$hook_name

(Required) The name of the action to be executed.

$arg

(Optional) Additional arguments which are passed on to the functions hooked to the action. Default empty.


Source

File: 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];

	$all_args = func_get_args();

	// Do 'all' actions first
	if ( isset($wp_filter['all']) ) {
		$wp_current_filter[] = $tag;
		_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 = $all_args;
	array_shift( $args );

	if ( empty( $args ) ) {
		$args = array( '' );
	}

	$wp_filter[ $tag ]->do_action( $args );

	array_pop($wp_current_filter);
}


Changelog

Changelog
Version Description
5.3.0 Formalized the existing and already documented ...$arg parameter by adding it to the function signature.
1.2.0 Introduced.