Risolvere i problemi con il CDN e Aqua Resizer

WP Rocket v2.5.5

Nella versione v 2.5.5 di WP Rocket abbiamo risolto il problema con le immagini che non venivano aggiunte al CDN quando usavi un tema o plugin che impiega uno script Aqua Resizer

Però se stai usando una versione precedente di WP Rocket, per favore controlla qui sotto come risolvere il problema. Se hai bisogno di aiuto, non esitate ad aprire un ticket di supporto e ti aiuteremo noi.

Istruzioni per WP Rocket v2.3.8 fino alla v2.5.4 (inclusa)

Se il tuo tema o plugin sta utilizzando uno script di ridimensionamento chiamato Aqua Resizer, le immagini su cui questo è attivato non verranno servite tramite il tuo CDN. Controlla se stai usando questo script cercando nel codice del tuo tema la funzione seguente:

aq_resize();

Per risolvere questo problema, puoi aggiungere il codice seguente al file functions.php del tuo tema oppure copiare il codice in un MU plugin

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;
}

Istruzioni per la v 2.3.7 e precedenti

Dovrai modificare il codice del tuo tema come descritto qui sotto in modo da poter applicare il nostro filtro.

Il codice originale assomiglierà al seguente:

<?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 ?>" 
/>

Sostituisci il codice originale qui sopra con quello che ti proponiamo qui in basso, così potrai far servire correttamente le immagini dal tuo 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 ?>" 
/>