Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
plugins
/
foogallery
/
includes
/
compatibility
:
class-jetpack-compatibility.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Jetpack Compatibility Class * * @since 2.0.25 * * @package foogallery */ if ( ! class_exists( 'FooGallery_Jetpack_Compatibility' ) ) { /** * Class FooGallery_Jetpack_Compatibility */ class FooGallery_Jetpack_Compatibility { /** * FooGallery_Jetpack_Compatibility constructor. */ public function __construct() { // Add 'skip-lazy' class onto all image tags generated by FooGallery. add_filter( 'foogallery_attachment_html_image_attributes', array( $this, 'add_lazy_image_attributes' ), 10, 3 ); // Add 'data' to allowed protocols. // This it to overcome a conflict with JetPack lazy images, whereby JP passes all image attributes through the wp_kses_hair function // This results in our image placeholder src of 'data:image/svg+xml...' being replaced with 'image/svg+xml...' which returns a 404. add_filter( 'kses_allowed_protocols', array( $this, 'add_data_to_allowed_protocols' ) ); } /** * Adds skip-lazy class to all img tags so that they get ignored by lazy loading plugins * * @param array $attr the attributes. * @param array $args extra arguments. * @param FooGalleryAttachment $foogallery_attachment the current attachment. * * @return mixed */ public function add_lazy_image_attributes( $attr, $args, $foogallery_attachment ) { if ( array_key_exists( 'class', $attr ) ) { $attr['class'] .= ' skip-lazy'; } else { $attr['class'] = 'skip-lazy'; } return $attr; } /** * Add 'data' to allowed protocols. * * @param array $protocols existing allowed protocols. * * @return mixed */ public function add_data_to_allowed_protocols( $protocols ) { $protocols[] = 'data'; return $protocols; } } }