<?php /** * Jetpack Plugin. * * @package visual-portfolio */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class Visual_Portfolio_3rd_Jetpack */ class Visual_Portfolio_3rd_Jetpack { /** * Visual_Portfolio_3rd_Jetpack constructor. */ public function __construct() { // Fix conflict with lazy loading. add_filter( 'jetpack_lazy_images_skip_image_with_attributes', array( $this, 'jetpack_lazy_images_skip_image_with_attributes' ), 15, 2 ); add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 20 ); } /** * We need to init the Jetpack lazy loading manually after Visual Portfolio AJAX completed. */ public function wp_enqueue_scripts() { $wp_scripts = wp_scripts(); $jetpack_ll_handler = 'jetpack-lazy-images'; if ( ! isset( $wp_scripts->registered[ $jetpack_ll_handler ] ) ) { return; } Visual_Portfolio_Assets::register_script( 'visual-portfolio-3rd-jetpack', 'build/assets/js/3rd/plugin-jetpack' ); $wp_scripts->registered[ $jetpack_ll_handler ]->deps[] = 'visual-portfolio-3rd-jetpack'; } /** * Skip Jetpack lazy loading when data-src attribute added to image. * * @param boolean $return skip lazy Jetpack. * @param array $attributes image attributes. * * @return boolean */ public function jetpack_lazy_images_skip_image_with_attributes( $return, $attributes ) { return isset( $attributes['data-src'] ); } } new Visual_Portfolio_3rd_Jetpack();