/** * Enqueue JS or CSS. * * Auto generate version. * * @param $handle * @param $src * @param array $deps * @param bool $in_footer * * @future https://github.com/wplib/wplib/issues/2 * @see https://github.com/wplib/wplib/commit/8dc27c368e84f7ba6e1448753e1b1f082a60ac6d#commitcomment-11026274 */ function enqueue_external($handle, $src, $deps = array(), $in_footer = false) { preg_match('#\\.(js|css)$#i', $src, $file_type); if ('~' === $src[0] && '/' === $src[1]) { /** * Assume $src that start with ~/ are relative. */ $src = preg_replace('#^(~/)#', '', $src); } if (!($absolute = preg_match('#^(/|https?://)#', $src))) { /** * If relative, add stylesheet URL and DIR to the $src and $filepath. */ $src = $this->get_root_url($src); $filepath = $this->get_root_dir($src); } if (!WPLib::is_script_debug() && !$absolute) { /** * If script debug and not absolute URL * then prefix extensions 'js' and 'css' with 'min.' */ $src = preg_replace('#\\.(js|css)$#i', '.min.$1', $src); $ver = rand(1, 1000000); } else { $ver = !empty($filepath) ? WPLib::file_hash($filepath) : false; } switch (strtolower($file_type[1])) { case 'js': wp_enqueue_script($handle, $src, $deps, $ver, $in_footer); break; case 'css': wp_enqueue_style($handle, $src, $deps, $ver, $in_footer); break; } }