instead of in the . * Default 'false'. */ function ai_override_script( $scripts, $handle, $src, $deps = array(), $ver = false, $in_footer = false ) { $script = $scripts->query( $handle, 'registered' ); if ( $script ) { /* * In many ways, this is a reimplementation of `wp_register_script` but * bypassing consideration of whether a script by the given handle had * already been registered. */ // See: `_WP_Dependency::__construct` . $script->src = $src; $script->deps = $deps; $script->ver = $ver; $script->args = $in_footer ? 1 : null; } else { $scripts->add( $handle, $src, $deps, $ver, ( $in_footer ? 1 : null ) ); } if ( in_array( 'wp-i18n', $deps, true ) ) { $scripts->set_translations( $handle ); } } /** * Register all package scripts. */ function ai_register_package_scripts( $scripts ) { // Load build constants $build_constants = require __DIR__ . '/constants.php'; $default_version = ! SCRIPT_DEBUG ? $build_constants['version'] : time(); $extension = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.js' : '.min.js'; $scripts_dir = __DIR__ . '/scripts'; $scripts_file = $scripts_dir . '/registry.php'; if ( ! file_exists( $scripts_file ) ) { return; } $scripts_data = require $scripts_file; $plugin_dir = dirname( __FILE__ ); foreach ( $scripts_data as $script_data ) { $asset_file = $scripts_dir . '/' . $script_data['asset']; $asset = file_exists( $asset_file ) ? require $asset_file : array(); $dependencies = $asset['dependencies'] ?? array(); $version = $asset['version'] ?? $default_version; ai_override_script( $scripts, $script_data['handle'], $build_constants['build_url'] . 'scripts/' . $script_data['path'] . $extension, $dependencies, $version, true ); } } add_action( 'wp_default_scripts', 'ai_register_package_scripts' );