File: /var/www/vfconf/wp-content/plugins/siteorigin-panels/compat/lazy-load-backgrounds.php
<?php
/**
* Apply background and Lazy Load attributes/classes to rows, cells and widgets.
*
* @return array $attributes
*/
function siteorigin_apply_lazy_load_attributes( $attributes, $style ) {
if (
! empty( $style['background_display'] ) &&
! empty( $style['background_image_attachment'] ) &&
$style['background_display'] != 'parallax' &&
$style['background_display'] != 'parallax-original'
) {
$url = SiteOrigin_Panels_Styles::get_attachment_image_src( $style['background_image_attachment'], 'full' );
if ( ! empty( $url ) ) {
$attributes['class'][] = 'lazy';
$attributes['data-bg'] = $url[0];
// WP Rocket uses a different lazy load class.
if ( defined( 'ROCKET_LL_VERSION' ) || function_exists( 'get_rocket_option' ) ) {
$attributes['class'][] = 'rocket-lazyload';
}
// Other lazy loads can sometimes use an inline background image.
if ( apply_filters( 'siteorigin_lazy_load_inline_background', false ) ) {
$attributes['style'] = 'background-image: url(' . $url[0] . ')';
}
}
}
return $attributes;
}
add_filter( 'siteorigin_panels_row_style_attributes', 'siteorigin_apply_lazy_load_attributes', 10, 2 );
add_filter( 'siteorigin_panels_cell_style_attributes', 'siteorigin_apply_lazy_load_attributes', 10, 2 );
add_filter( 'siteorigin_panels_widget_style_attributes', 'siteorigin_apply_lazy_load_attributes', 10, 2 );
/**
* Prevent background image from being added using CSS.
*
* @return mixed
*/
function siteorigin_prevent_background_css( $css, $style ) {
if (
! empty( $css['background-image'] ) &&
$style['background_display'] != 'parallax' &&
$style['background_display'] != 'parallax-original'
) {
unset( $css['background-image'] );
}
return $css;
}
add_filter( 'siteorigin_panels_row_style_css', 'siteorigin_prevent_background_css', 10, 2 );
add_filter( 'siteorigin_panels_cell_style_css', 'siteorigin_prevent_background_css', 10, 2 );
add_filter( 'siteorigin_panels_widget_style_css', 'siteorigin_prevent_background_css', 10, 2 );