function rocket_dns_prefetch($buffer) { $dns_link_tags = ''; $cdn_cnames = get_rocket_cdn_cnames(array('all', 'images', 'css_and_js', 'css', 'js')); // Don't add CNAMES if CDN is disabled HTTPS pages or on specific posts if (!is_rocket_cdn_on_ssl() || is_rocket_post_excluded_option('cdn')) { $cdn_cnames = array(); } $domains = array_merge($cdn_cnames, (array) get_rocket_option('dns_prefetch')); /** * Filter list of domains to prefetch DNS * * @since 1.1.0 * * @param array $domains List of domains to prefetch DNS */ $domains = apply_filters('rocket_dns_prefetch', $domains); if (count($domains)) { foreach ($domains as $domain) { $dns_link_tags .= '<link rel="dns-prefetch" href="' . esc_url($domain) . '" />'; } } // Insert all DNS prefecth tags in head $buffer = preg_replace('/<head(.*)>/', '<head$1><!--[if IE]><![endif]-->' . $dns_link_tags, $buffer, 1); return $buffer; }
function rocket_cdn_css_properties($buffer) { $zone = array('all', 'css_and_js', 'css'); $cnames = get_rocket_cdn_cnames($zone); /** * Allow a "force deactivation" link to be printed, use at your own risks * * @since 2.0.0 * * @param bool true will print the link */ $do_rocket_cdn_css_properties = apply_filters('do_rocket_cdn_css_properties', true); if (!get_rocket_option('cdn') || !$cnames || !$do_rocket_cdn_css_properties) { return $buffer; } preg_match_all('/url\\((?![\'"]?data)([^\\)]+)\\)/i', $buffer, $matches); if (is_array($matches)) { $i = 0; foreach ($matches[1] as $url) { $url = trim($url, " \t\n\r\v\"'"); $url = get_rocket_cdn_url($url, $zone); $property = str_replace($matches[1][$i], $url, $matches[0][$i]); $buffer = str_replace($matches[0][$i], $property, $buffer); $i++; } } return $buffer; }
function rocket_cdn_enqueue($src) { // Don't use CDN if in admin, in login page, in register page or in a post preview if (is_admin() || is_preview() || in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))) { return $src; } $src = set_url_scheme($src); $zone = array('all', 'css_and_js'); // Add only CSS zone if (current_filter() == 'style_loader_src') { $zone[] = 'css'; } // Add only JS zone if (current_filter() == 'script_loader_src') { $zone[] = 'js'; } if ($cnames = get_rocket_cdn_cnames($zone)) { list($src_host, $src_path) = get_rocket_parse_url($src); // Check if the link isn't external if ($src_host == parse_url(home_url(), PHP_URL_HOST) && trim($src_path, '/') != '') { $src = get_rocket_cdn_url($src, $zone); } } return $src; }
public function tm_image_url($url = "") { // WP Rocket cdn if (defined('WP_ROCKET_VERSION') && function_exists('get_rocket_cdn_cnames') && function_exists('get_rocket_cdn_url')) { $zone = array('all', 'images'); if (is_array($url)) { foreach ($url as $key => $value) { $ext = pathinfo($value, PATHINFO_EXTENSION); if (is_admin() && $ext != 'php') { continue; } if ($cnames = get_rocket_cdn_cnames($zone)) { $url[$key] = get_rocket_cdn_url($value, $zone); } } } else { $ext = pathinfo($url, PATHINFO_EXTENSION); if (is_admin() && $ext != 'php') { //skip } else { if ($cnames = get_rocket_cdn_cnames($zone)) { $url = get_rocket_cdn_url($url, $zone); } } } } return $url; }