WP_CLI::defer_command_addition
Defer command addition for a sub-command if the parent command is not yet registered.
Method of the class: WP_CLI{}
No Hooks.
Returns
null. Nothing (null).
Usage
$result = WP_CLI::defer_command_addition( $name, $parent, $callable, $args );
- $name(string) (required)
- Name for the sub-command.
- $parent(string) (required)
- Name for the parent command.
- $callable(string) (required)
- Command implementation as a class, function or closure.
- $args(array)
- See WP_CLI::add_command() for details.
Default: []
WP_CLI::defer_command_addition() WP CLI::defer command addition code WP-CLI 2.13.0-alpha
private static function defer_command_addition( $name, $parent, $callable, $args = [] ) {
$args['is_deferred'] = true;
self::$deferred_additions[ $name ] = [
'parent' => $parent,
'callable' => $callable,
'args' => $args,
];
self::add_hook(
"after_add_command:$parent",
function () use ( $name ) {
$deferred_additions = WP_CLI::get_deferred_additions();
if ( ! array_key_exists( $name, $deferred_additions ) ) {
return;
}
$callable = $deferred_additions[ $name ]['callable'];
$args = $deferred_additions[ $name ]['args'];
WP_CLI::remove_deferred_addition( $name );
WP_CLI::add_command( $name, $callable, $args );
}
);
}