get_block_asset_url

The timeline below displays how wordpress function get_block_asset_url has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Gets the URL to a block asset.
 *
 * @since 6.4.0
 *
 * @param string $path A normalized path to a block asset.
 * @return string|false The URL to the block asset or false on failure.
 */
function get_block_asset_url($path)
{
    if (empty($path)) {
        return false;
    }
    // Path needs to be normalized to work in Windows env.
    static $wpinc_path_norm = '';
    if (!$wpinc_path_norm) {
        $wpinc_path_norm = wp_normalize_path(realpath(ABSPATH . WPINC));
    }
    if (str_starts_with($path, $wpinc_path_norm)) {
        return includes_url(str_replace($wpinc_path_norm, '', $path));
    }
    static $template_paths_norm = array();
    $template = get_template();
    if (!isset($template_paths_norm[$template])) {
        $template_paths_norm[$template] = wp_normalize_path(realpath(get_template_directory()));
    }
    if (str_starts_with($path, trailingslashit($template_paths_norm[$template]))) {
        return get_theme_file_uri(str_replace($template_paths_norm[$template], '', $path));
    }
    if (is_child_theme()) {
        $stylesheet = get_stylesheet();
        if (!isset($template_paths_norm[$stylesheet])) {
            $template_paths_norm[$stylesheet] = wp_normalize_path(realpath(get_stylesheet_directory()));
        }
        if (str_starts_with($path, trailingslashit($template_paths_norm[$stylesheet]))) {
            return get_theme_file_uri(str_replace($template_paths_norm[$stylesheet], '', $path));
        }
    }
    return plugins_url(basename($path), $path);
}

WordPress Version: 6.4

/**
 * Gets the URL to a block asset.
 *
 * @since 6.4.0
 *
 * @param string $path A normalized path to a block asset.
 * @return string|false The URL to the block asset or false on failure.
 */
function get_block_asset_url($path)
{
    if (empty($path)) {
        return false;
    }
    // Path needs to be normalized to work in Windows env.
    static $wpinc_path_norm = '';
    if (!$wpinc_path_norm) {
        $wpinc_path_norm = wp_normalize_path(realpath(ABSPATH . WPINC));
    }
    if (str_starts_with($path, $wpinc_path_norm)) {
        return includes_url(str_replace($wpinc_path_norm, '', $path));
    }
    static $template_paths_norm = array();
    $template = get_template();
    if (!isset($template_paths_norm[$template])) {
        $template_paths_norm[$template] = wp_normalize_path(get_template_directory());
    }
    if (str_starts_with($path, trailingslashit($template_paths_norm[$template]))) {
        return get_theme_file_uri(str_replace($template_paths_norm[$template], '', $path));
    }
    if (is_child_theme()) {
        $stylesheet = get_stylesheet();
        if (!isset($template_paths_norm[$stylesheet])) {
            $template_paths_norm[$stylesheet] = wp_normalize_path(get_stylesheet_directory());
        }
        if (str_starts_with($path, trailingslashit($template_paths_norm[$stylesheet]))) {
            return get_theme_file_uri(str_replace($template_paths_norm[$stylesheet], '', $path));
        }
    }
    return plugins_url(basename($path), $path);
}