public static function getURL($script, $file)
{
$parentTheme = trailingslashit(get_template_directory());
$childTheme = trailingslashit(get_stylesheet_directory());
$plugin = trailingslashit(dirname($file));
// Windows sometimes mixes up forward and back slashes, ensure forward slash for correct URL output.
$parentTheme = str_replace('\\', '/', $parentTheme);
$childTheme = str_replace('\\', '/', $childTheme);
$file = str_replace('\\', '/', $file);
$url = '';
// Framework is in a parent theme.
if (stripos($file, $parentTheme) !== false) {
$dir = trailingslashit(dirname(str_replace($parentTheme, '', $file)));
if ('./' == $dir) {
$dir = '';
}
$url = trailingslashit(get_template_directory_uri()) . $dir . $script;
} else {
if (stripos($file, $childTheme) !== false) {
// Framework is in a child theme.
$dir = trailingslashit(dirname(str_replace($childTheme, '', $file)));
if ('./' == $dir) {
$dir = '';
}
$url = trailingslashit(get_stylesheet_directory_uri()) . $dir . $script;
} else {
// Framework is a or in a plugin.
$url = plugins_url($script, $file);
}
}
// Replace /foo/../ with '/'.
$url = preg_replace('/\\/(?!\\.\\.)[^\\/]+\\/\\.\\.\\//', '/', $url);
return $url;
}