XylotrechusZ
<?php
/**
* SiteGround Optimizer Plugin.
*
* @package visual-portfolio
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class Visual_Portfolio_3rd_SG_Cachepress
*/
class Visual_Portfolio_3rd_SG_Cachepress {
/**
* Visual_Portfolio_3rd_SG_Cachepress constructor.
*/
public function __construct() {
if ( ! class_exists( '\SiteGround_Optimizer\Options\Options' ) || ! \SiteGround_Optimizer\Options\Options::is_enabled( 'siteground_optimizer_lazyload_images' ) ) {
return;
}
// Disable our lazyload if SiteGround Optimizer lazyload used.
add_filter( 'vpf_images_lazyload', '__return_false' );
add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 20 );
}
/**
* SG lazy loading breaks our scripts which calculate size of the images,
* we need to resolve it in a hacky way by changing src placeholder.
*/
public function wp_enqueue_scripts() {
$wp_scripts = wp_scripts();
$sg_ll_handler = 'siteground-optimizer-lazy-sizes-js';
if ( ! isset( $wp_scripts->registered[ $sg_ll_handler ] ) ) {
return;
}
$wp_scripts->registered[ $sg_ll_handler ]->deps[] = 'jquery';
wp_add_inline_script(
$sg_ll_handler,
'(function($){
if ( !$ ) {
return;
}
function maybeFixSGSrc( $images ) {
$images.find( "img[src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"]" ).each( function() {
var $img = $( this );
var width = $img.attr( "width" );
var height = $img.attr( "height" );
if ( width && height ) {
var newSrc = "<svg width=\"" + width + "\" height=\"" + height + "\" viewBox=\"0 0 " + width + " " + height + "\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"></svg>";
newSrc = newSrc
.replace( /</g, "%3c" )
.replace( />/g, "%3e" )
.replace( /#/g, "%23" )
.replace( /"/g, "\'" );
$img.attr( "src", "data:image/svg+xml;utf8," + newSrc );
}
} );
}
// Fix starter images.
maybeFixSGSrc( $( ".vp-portfolio__items" ) );
// Fix AJAX loaded images.
$( document ).on( "addItems.vpf", function ( event, self, $items, removeExisting ) {
if ( "vpf" !== event.namespace ) {
return;
}
maybeFixSGSrc( $items );
} );
}(window.jQuery));',
'before'
);
}
}
new Visual_Portfolio_3rd_SG_Cachepress();