- WordPress 6.9.4 (es_ES) with Kadence theme - Homepage: Hero, La Asociación, Pilares, Beneficios, Eventos, Miembros, Hazte Miembro, Contacto - Brand identity: #13294b navy, #a12932 burgundy, #c69c48 gold - Fonts: Raleway (headings) + Source Sans 3 (body) + Lato (UI) - Plugins: Kadence Blocks, Polylang, Contact Form 7 - Custom CSS with full brand styling and responsive layout - HTTPS enforced via wp-config.php proxy detection
128 lines
3.8 KiB
PHP
128 lines
3.8 KiB
PHP
<?php declare( strict_types=1 );
|
|
|
|
namespace KadenceWP\KadenceBlocks\Optimizer\Lazy_Load;
|
|
|
|
use KadenceWP\KadenceBlocks\Optimizer\Analysis_Registry;
|
|
use KadenceWP\KadenceBlocks\Optimizer\Lazy_Load\Sections\Lazy_Render_Decider;
|
|
use KadenceWP\KadenceBlocks\Optimizer\Request\Request;
|
|
use KadenceWP\KadenceBlocks\StellarWP\ProphecyMonorepo\Container\Contracts\Provider as Provider_Contract;
|
|
use KadenceWP\KadenceBlocks\Traits\Viewport_Trait;
|
|
|
|
final class Provider extends Provider_Contract {
|
|
|
|
use Viewport_Trait;
|
|
|
|
public function register(): void {
|
|
$this->register_analysis_registry();
|
|
$this->register_element_lazy_loader();
|
|
$this->register_slider_lazy_loader();
|
|
$this->register_video_poster_lazy_loader();
|
|
$this->register_background_lazy_loader();
|
|
}
|
|
|
|
private function register_analysis_registry(): void {
|
|
$this->container->singleton( Analysis_Registry::class, Analysis_Registry::class );
|
|
|
|
$this->container->when( Analysis_Registry::class )
|
|
->needs( '$is_mobile' )
|
|
->give( fn(): bool => $this->is_mobile() );
|
|
}
|
|
|
|
private function register_element_lazy_loader(): void {
|
|
$this->container->singleton( Lazy_Render_Decider::class, Lazy_Render_Decider::class );
|
|
$this->container->singleton( Element_Lazy_Loader::class, Element_Lazy_Loader::class );
|
|
|
|
/**
|
|
* Filters the list of CSS classes that should be excluded from lazy loading for
|
|
* section elements.
|
|
*
|
|
* @param string[] $excluded_classes An array of CSS class names. If a row has one
|
|
* of these classes, it will be excluded from lazy loading.
|
|
*/
|
|
$excluded_classes = apply_filters(
|
|
'kadence_blocks_optimizer_section_lazy_load_excluded_classes',
|
|
[
|
|
'kt-jarallax',
|
|
]
|
|
);
|
|
|
|
$this->container->when( Lazy_Render_Decider::class )
|
|
->needs( '$excluded_classes' )
|
|
->give( static fn(): array => $excluded_classes );
|
|
|
|
// Do not perform element lazy loading on optimizer requests.
|
|
if ( $this->container->get( Request::class )->is_optimizer_request() ) {
|
|
return;
|
|
}
|
|
|
|
add_filter(
|
|
'kadence_blocks_row_wrapper_args',
|
|
$this->container->callback( Element_Lazy_Loader::class, 'set_content_visibility_for_row' ),
|
|
10,
|
|
2
|
|
);
|
|
|
|
add_filter(
|
|
'kadence_blocks_column_html',
|
|
$this->container->callback( Element_Lazy_Loader::class, 'modify_column_html' ),
|
|
10,
|
|
1
|
|
);
|
|
}
|
|
|
|
private function register_slider_lazy_loader(): void {
|
|
$this->container->singleton( Slider_Lazy_Loader::class, Slider_Lazy_Loader::class );
|
|
|
|
// Do not perform slider lazy loading on optimizer requests.
|
|
if ( $this->container->get( Request::class )->is_optimizer_request() ) {
|
|
return;
|
|
}
|
|
|
|
add_filter(
|
|
'kadence_blocks_row_slider_attrs',
|
|
$this->container->callback( Slider_Lazy_Loader::class, 'lazy_load_row_slider' ),
|
|
10,
|
|
2
|
|
);
|
|
}
|
|
|
|
private function register_video_poster_lazy_loader(): void {
|
|
$this->container->singleton( Video_Poster_Lazy_Loader::class, Video_Poster_Lazy_Loader::class );
|
|
|
|
// Do not perform slider lazy loading on optimizer requests.
|
|
if ( $this->container->get( Request::class )->is_optimizer_request() ) {
|
|
return;
|
|
}
|
|
|
|
add_filter(
|
|
'kadence_blocks_row_video_attrs',
|
|
$this->container->callback( Video_Poster_Lazy_Loader::class, 'lazy_load_row_video_poster' ),
|
|
10,
|
|
1
|
|
);
|
|
}
|
|
|
|
private function register_background_lazy_loader(): void {
|
|
$this->container->singleton( Background_Lazy_Loader::class, Background_Lazy_Loader::class );
|
|
|
|
// Do not perform background lazy loading on optimizer requests.
|
|
if ( $this->container->get( Request::class )->is_optimizer_request() ) {
|
|
return;
|
|
}
|
|
|
|
add_filter(
|
|
'kadence_blocks_row_wrapper_args',
|
|
$this->container->callback( Background_Lazy_Loader::class, 'lazy_load_row_background_images' ),
|
|
20,
|
|
2
|
|
);
|
|
|
|
add_filter(
|
|
'kadence_blocks_column_html',
|
|
$this->container->callback( Background_Lazy_Loader::class, 'lazy_load_column_backgrounds' ),
|
|
20,
|
|
2
|
|
);
|
|
}
|
|
}
|