WP_Script_Modules::add_hooks()

In this article

Adds the hooks to print the import map, enqueued script modules and script module preloads.

Description

In classic themes, the script modules used by the blocks are not yet known when the wp_head actions is fired, so it needs to print everything in the footer.

Source

public function add_hooks() {
	$is_block_theme = wp_is_block_theme();
	$position       = $is_block_theme ? 'wp_head' : 'wp_footer';
	add_action( $position, array( $this, 'print_import_map' ) );
	if ( $is_block_theme ) {
		/*
		 * Modules can only be printed in the head for block themes because only with
		 * block themes will import map be fully populated by modules discovered by
		 * rendering the block template. In classic themes, modules are enqueued during
		 * template rendering, thus the import map must be printed in the footer,
		 * followed by all enqueued modules.
		 */
		add_action( 'wp_head', array( $this, 'print_head_enqueued_script_modules' ) );
	}
	add_action( 'wp_footer', array( $this, 'print_enqueued_script_modules' ) );
	add_action( $position, array( $this, 'print_script_module_preloads' ) );

	add_action( 'admin_print_footer_scripts', array( $this, 'print_import_map' ) );
	add_action( 'admin_print_footer_scripts', array( $this, 'print_enqueued_script_modules' ) );
	add_action( 'admin_print_footer_scripts', array( $this, 'print_script_module_preloads' ) );

	add_action( 'wp_footer', array( $this, 'print_script_module_data' ) );
	add_action( 'admin_print_footer_scripts', array( $this, 'print_script_module_data' ) );
	add_action( 'wp_footer', array( $this, 'print_a11y_script_module_html' ), 20 );
	add_action( 'admin_print_footer_scripts', array( $this, 'print_a11y_script_module_html' ), 20 );
}

Changelog

VersionDescription
6.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.