WP_CLI::do_hook
Execute callbacks registered to a given hook.
See WP_CLI::add_hook() for details on WP-CLI's internal hook system. Commands can provide and call their own hooks.
Method of the class: WP_CLI{}
No Hooks.
Returns
null|Mixed. Returns the first optional argument if optional arguments were passed, otherwise returns null.
Usage
$result = WP_CLI::do_hook( $when, ...$args );
- $when(string) (required)
- Identifier for the hook.
- ...$args(mixed) (required)
- Arguments that will be passed onto the callback provided by WP_CLI::add_hook().
WP_CLI::do_hook() WP CLI::do hook code WP-CLI 2.13.0-alpha
public static function do_hook( $when, ...$args ) {
self::$hooks_passed[ $when ] = $args;
$has_args = count( $args ) > 0;
if ( ! isset( self::$hooks[ $when ] ) ) {
if ( $has_args ) {
return $args[0];
}
return null;
}
self::debug(
sprintf(
'Processing hook "%s" with %d callbacks',
$when,
count( self::$hooks[ $when ] )
),
'hooks'
);
foreach ( self::$hooks[ $when ] as $callback ) {
self::debug(
sprintf(
'On hook "%s": %s',
$when,
Utils\describe_callable( $callback )
),
'hooks'
);
if ( $has_args ) {
$return_value = $callback( ...$args );
if ( isset( $return_value ) ) {
$args[0] = $return_value;
}
} else {
$callback();
}
}
if ( $has_args ) {
return $args[0];
}
return null;
}