PluginProbe
RabbitLoader / 2.18.2
RabbitLoader v2.18.2
4.0.2 4.0.1 4.0 3.2.0 3.1.1 3.1.0 3.0.5 3.0.3 3.0.4 2.17.1 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.7 2.18.0 2.18.1 2.18.2 2.18.3 2.18.4 2.18.5 2.18.6 2.18.7 2.18.8 All 129 releases
rabbit-loader / inc / pub_cdn.php

pub_cdn.php in RabbitLoader 2.18.2, at inc/pub_cdn.php

59 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class RabbitLoader_21_CDN
4 {
5
6 public $cdn_prefix = '';
7 public $site_host = '';
8
9 public static function init()
10 {
11 if (!function_exists('is_admin') || is_admin() || RabbitLoader_21_Util_WP::is_login_page()) {
12 return;
13 }
14 $sr = RabbitLoader_21_Public::getSkipReason();
15 if ($sr == RabbitLoader_21_Public::skip_reason_ep || $sr == RabbitLoader_21_Public::skip_reason_or) {
16 //excluded pages or RL origin pages
17 return;
18 }
19
20 $cdn = new RabbitLoader_21_CDN();
21 $cdn->cdn_prefix = get_option('rabbitloader_cdn_prefix');
22 $cdn->site_host = parse_url(get_site_url())['host'];
23
24 add_filter('script_loader_src', [$cdn, 'replaceAssetHost'], 10, 1);
25 add_filter('style_loader_src', [$cdn, 'replaceAssetHost'], 10, 1);
26 add_filter('wp_get_attachment_url', [$cdn, 'replaceAssetHost'], 10, 1);
27 add_filter('wp_calculate_image_srcset', function ($sources) use($cdn){
28 if(!is_admin()) {
29 foreach ($sources as &$source) {
30 if(!empty($source['url'])){
31 $source['url'] = $cdn->replaceAssetHost($source['url']);
32 }
33 }
34 }
35 return $sources;
36 }, 10, 1);
37 }
38
39 public function replaceAssetHost($original_src)
40 {
41 if (empty($this->cdn_prefix)) {
42 return $original_src;
43 }
44 $parsed_url = parse_url($original_src);
45 if (!empty($parsed_url['host']) && $parsed_url['host'] == $this->site_host) {
46 $parsed_url['host'] = $this->cdn_prefix;
47 $parsed_url['scheme'] = "https";
48 return sprintf(
49 '%s://%s%s%s%s',
50 $parsed_url['scheme'],
51 $parsed_url['host'],
52 $parsed_url['path'],
53 !empty($parsed_url['query']) ? '?' . $parsed_url['query'] : '',
54 !empty($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : ''
55 );
56 }
57 }
58 }
59