diff --git a/inc/Dependencies/RocketLazyload/Assets.php b/inc/Dependencies/RocketLazyload/Assets.php index c388ae6a0d..7033584223 100644 --- a/inc/Dependencies/RocketLazyload/Assets.php +++ b/inc/Dependencies/RocketLazyload/Assets.php @@ -267,7 +267,20 @@ public function getYoutubeThumbnailScript( $args = [] ) { } } - return ""; + /** + * Filters the patterns excluded from lazyload for youtube thumbnails. + * + * @param array $excluded_patterns Array of excluded patterns. + */ + $excluded_patterns = apply_filters( 'rocket_lazyload_exclude_youtube_thumbnail', [] ); + + if ( ! is_array( $excluded_patterns ) ) { + $excluded_patterns = []; + } + + $excluded_patterns = wp_json_encode( $excluded_patterns ); + + return ""; } /** diff --git a/inc/Engine/Media/Lazyload/Subscriber.php b/inc/Engine/Media/Lazyload/Subscriber.php index 3f4ff83cd2..50ddd59197 100644 --- a/inc/Engine/Media/Lazyload/Subscriber.php +++ b/inc/Engine/Media/Lazyload/Subscriber.php @@ -75,20 +75,21 @@ public function __construct( Options_Data $options, Assets $assets, Image $image */ public static function get_subscribed_events() { return [ - 'wp_footer' => [ + 'wp_footer' => [ [ 'insert_lazyload_script', PHP_INT_MAX ], [ 'insert_youtube_thumbnail_script', PHP_INT_MAX ], ], - 'wp_head' => [ 'insert_nojs_style', PHP_INT_MAX ], - 'wp_enqueue_scripts' => [ 'insert_youtube_thumbnail_style', PHP_INT_MAX ], - 'rocket_buffer' => [ 'lazyload', 18 ], - 'rocket_lazyload_html' => 'lazyload_responsive', - 'init' => 'lazyload_smilies', - 'wp' => 'deactivate_lazyload_on_specific_posts', - 'wp_lazy_loading_enabled' => [ 'maybe_disable_core_lazyload', 10, 2 ], - 'rocket_lazyload_excluded_attributes' => 'add_exclusions', - 'rocket_lazyload_excluded_src' => 'add_exclusions', - 'rocket_lazyload_iframe_excluded_patterns' => 'add_exclusions', + 'wp_head' => [ 'insert_nojs_style', PHP_INT_MAX ], + 'wp_enqueue_scripts' => [ 'insert_youtube_thumbnail_style', PHP_INT_MAX ], + 'rocket_buffer' => [ 'lazyload', 18 ], + 'rocket_lazyload_html' => 'lazyload_responsive', + 'init' => 'lazyload_smilies', + 'wp' => 'deactivate_lazyload_on_specific_posts', + 'wp_lazy_loading_enabled' => [ 'maybe_disable_core_lazyload', 10, 2 ], + 'rocket_lazyload_excluded_attributes' => 'add_exclusions', + 'rocket_lazyload_excluded_src' => 'add_exclusions', + 'rocket_lazyload_iframe_excluded_patterns' => 'add_exclusions', + 'rocket_lazyload_exclude_youtube_thumbnail' => 'add_exclusions', ]; } @@ -455,7 +456,11 @@ public function maybe_disable_core_lazyload( $value, $tag_name ) { * @param array $exclusions Array of excluded patterns. * @return array */ - public function add_exclusions( array $exclusions ): array { + public function add_exclusions( $exclusions ): array { + if ( ! is_array( $exclusions ) ) { + $exclusions = []; + } + $exclude_lazyload = $this->options->get( 'exclude_lazyload', [] ); if ( empty( $exclude_lazyload ) ) {