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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
 }