Désactiver le Lazyload pour les iframes
Dans cette documentation
Désactiver le LazyLoad sur des iframes spécifiques
WP Rocket 3.8+
À partir de WP Rocket 3.8, vous trouverez un champ dans les paramètres du plugin pour exclure les iframes de LazyLoad :
Pour exclure un iframe, utilisez n'importe quel mot-clé de l'élément <iframe>
.
Exemple
<iframe title="Introducing RocketCDN - WP Rocket CDN Service" width="580" height="326" src="https://www.youtube.com/embed/LtU76BZcRQk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
- Le titre :
Introducing RocketCDN
- La source d'intégration :
https://www.youtube.com/embed/LtU76BZcRQk?feature=oembed
- Le domaine :
youtube.com
- cela exclura tous les iframes de youtube.com
Versions de WP Rocket antérieures à 3.8
Il y a 2 méthodes au choix pour désactiver le Lazyload sur des iframes spécifiques.
- En modifiant directement l’iframe en question en lui ajoutant :
- soit l'attribut
data-skip-lazy
- soit la class
skip-lazy
- soit l'attribut
- Si vous ne pouvez pas modifier le code de l'iframe directement, vous pouvez utiliser ce filtre à la place :
rocket_lazyload_iframe_excluded_patterns
Cela ciblera n'importe quelle partie de l'iframe, il suffit donc de choisir une chaîne spécifique (c'est-à-dire un mot) du code à exclure, tel que le nom de domaine ou la valeur de tout attribut dans le code. En utilisant le code d'iframe ci-dessus comme exemple, vous pouvez l'exclure par le nom de domaine :
Exemples :
<iframe data-skip-lazy=""" width="560" height="315" src="https://www.youtube.com/embed/Srq1FqFPwj0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<iframe class="skip-lazy" width="560" height="315" src="https://www.youtube.com/embed/Srq1FqFPwj0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
Ceux-ci ne sont sont disponibles qu'à partir de la version 3.5 de WP Rocket et font partie d'une coopération entre les auteurs de plugins des solutions LazyLoad pour normaliser les exclusions. Cela signifie que si vous passez d'un plugin coopérant à l'autre et que vous utilisez l'une de ces méthodes d'exclusion, celle-ci s'appliquera toujours dans la solution alternative.
Si vous utilisiez data-no-lazy
, cela fonctionnera toujours, mais pour WP Rocket seulement.
function rocket_lazyload_exclude_pattern( $pattern ) { $pattern[] = 'youtube'; return $pattern; } add_filter( 'rocket_lazyload_iframe_excluded_patterns', 'rocket_lazyload_exclude_pattern' );
Ceci exclura cette iframe grâce au mot "youtube".
Pour être encore plus précis, vous pouvez utiliser l’ID de la vidéo, tiré de son URL.
function rocket_lazyload_exclude_pattern( $pattern ) { $pattern[] = 'Srq1FqFPwj0'; return $pattern; } add_filter( 'rocket_lazyload_iframe_excluded_patterns', 'rocket_lazyload_exclude_pattern' );
Ajoutez l'extrait de code au fichier functions.php de votre thème enfant, à votre propre plugin, ou utilisez un plugin comme My Custom Functions.
Désactiver le LazyLoad des iframes sur des pages spécifiques
Suivez ce guide pour désactiver cette option sur certaines pages..
Désactiver par programmation le LazyLoad des iframes
Pour désactiver par programmation le lazyload des iframes sur certains types de pages, vous pouvez utiliser ce filtre :
add_filter( 'do_rocket_lazyload_iframes', '__return_false' );
Par exemple, pour désactiver ce LazyLoad seulement sur page produit de WooCommerce, vous pouvez utiliser le code suivant :
function rocket_lazyload_deactivate_on_single_product() { if ( is_singular( 'product' ) ) { add_filter( 'do_rocket_lazyload_iframes', '__return_false' ); } } add_filter( 'wp', 'rocket_lazyload_deactivate_on_single_product' );