Résoudre les problème avec le CDN et Aqua Resizer

WP Rocket v2.5.5

Dans la version 2.5.5 de WP Rocket nous avons réglé le problème des images qui n’étaient pas ajoutées au CDN lorsque votre thème ou extension utilise le script Aqua Resizer.

Toutefois, si vous utilisez une version plus ancienne de WP Rocket, vous pouvez suivre les instructions ci-dessous pour résoudre ce problème. Si vous avez besoin d’aide pour les mettre en place, vous pouvez ouvrir un ticket support et nous vous aiderons.

Instructions pour les versions de WP Rocket 2.3.8 jusqu’à 2.5.4

Si votre thème ou une extension utilise un script de redimensionnement appelé Aqua Resizer les images sur lesquelles il agit ne seront pas distribuées depuis votre CDN. Vous pouvez vérifier la présence de la fonction dans le code de votre thème :

aq_resize();

Pour régler ce problème vous pouvez ajouter le code suivant au fichier functions.php file ou le coller dans une extension automatique

add_action( 'init', '__rocket_cdn_on_aqua_resizer_238' );
function __rocket_cdn_on_aqua_resizer_238() {
	if( function_exists( 'aq_resize' ) ) {
		remove_filter( 'wp_get_attachment_url' , 'rocket_cdn_file', PHP_INT_MAX );
		add_filter( 'rocket_lazyload_html', '__rocket_cdn_on_data_lazy_src_attr_238' );
	}
}
function __rocket_cdn_on_data_lazy_src_attr_238( $html ) {
	if( preg_match( '/data-lazy-src=[\'"]?([^\'"\s>]+)[\'"]/i', $html, $matches ) ) {
		$html = str_replace( $matches[1], get_rocket_cdn_url( $matches[1], array( 'all', 'images' ) ), $html );
	}
	return $html;
}<br>

Instructions pour les versions 2.3.7 et antérieures

Vous devrez éditer le code du thème comme décris plus bas pour appliquer notre filtre.

Le code original ressemblera à l’exemple suivant :

<?php
$thumb 	 = get_post_thumbnail_id(); 
$img_url   = wp_get_attachment_url( $thumb,'full'); // Get img URL
$image 	 = aq_resize( $img_url, $w, $h, true );   // Resize & Crop img 
?>
<img src="<?php echo $image ?>" /><br>

Remplacez le avec le code suivant pour distribuer ces images à votre CDN :

<?php
$thumb = get_post_thumbnail_id(); 
// Remove WP Rocket CDN which cause conflict
remove_filter( 'wp_get_attachment_url' , 'rocket_cdn_file', PHP_INT_MAX );
$img_url = wp_get_attachment_url( $thumb,'full'); // Get img URL
$image 	 = aq_resize( $img_url, $w, $h, true );   // Resize & Crop img 
// Add WP Rocket CDN
add_filter( 'wp_get_attachment_url', 'rocket_cdn_file', PHP_INT_MAX );
$image = get_rocket_cdn_url( $image );
?>
<img src="<?php echo $image ?>" /><br>