PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 4.2.7
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v4.2.7
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / inc / compatibilities / spectra.php

spectra.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 4.2.7, at inc/compatibilities/spectra.php

71 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class Optml_spectra
5 *
6 * @reason Optimizing Block images when saved to a CSS file.
7 */
8 class Optml_spectra extends Optml_compatibility {
9
10 /**
11 * Should we load the integration logic.
12 *
13 * @return bool Should we load.
14 */
15 public function should_load() {
16 include_once ABSPATH . 'wp-admin/includes/plugin.php';
17
18 return is_plugin_active( 'ultimate-addons-for-gutenberg/ultimate-addons-for-gutenberg.php' );
19 }
20
21 /**
22 * Register integration details.
23 */
24 public function register() {
25 add_filter( 'uagb_block_attributes_for_css_and_js', [ $this, 'optimize_src' ], PHP_INT_MAX, 2 );
26
27 add_filter(
28 'optml_lazyload_bg_selectors',
29 function ( $all_watchers ) {
30 $all_watchers[] = '.wp-block-uagb-container';
31
32 return $all_watchers;
33 }
34 );
35 }
36
37 /**
38 * Optimize the src attribute.
39 *
40 * @param array $attrs Array of attributes.
41 * @param string $name Name of the block.
42 *
43 * @return array
44 */
45 public function optimize_src( $attrs, $name ) {
46 $attrs = $this->iterate_array( $attrs );
47
48 return $attrs;
49 }
50
51 /**
52 * Iterate through the array and replace the url.
53 *
54 * @param array $attrs Array of attributes.
55 * @return array
56 */
57 public function iterate_array( $attrs ) {
58 foreach ( $attrs as $key => $value ) {
59 if ( is_array( $value ) ) {
60 $attrs[ $key ] = $this->iterate_array( $value );
61 }
62
63 if ( is_string( $value ) && preg_match( '/(http|https):\/\/.*\.(?:png|jpg|jpeg|gif|webp)/i', $value ) ) {
64 $attrs[ $key ] = Optml_Main::instance()->manager->url_replacer->build_url( $value );
65 }
66 }
67
68 return $attrs;
69 }
70 }
71