WordPress: testare la disponibilità di una CDN nell'inclusione degli script

WordPress: testare la disponibilità di una CDN nell'inclusione degli script

Cosa succederebbe se un sistema CDN fosse down? Ad esempio una libreria JavaScript non sarebbe più disponibile ed il nostro sito presenterebbe dei notevoli problemi qualora il funzionamento delle sue caratteristiche dipendesse interamente da questa libreria. Dobbiamo quindi implementare una soluzione di ripiego.

La soluzione consiste nel testare la disponibilità della copia remota della libreria ed eventualmente ripiegare su una copia locale:


function add_scripts() {
	$jquery_cdn_url = 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js';
	$jquery_local_url = get_template_directory_uri() . '/js/jquery.min.js';
	
	wp_deregister_script( 'jquery' );
	
	$remote_jquery = wp_remote_get( $jquery_cdn_url, array( 'timeout' => 2 ) ); // richiesta GET con un timeout di 2 secondi
	
	if( !is_wp_error( $remote_jquery ) ) { // è disponibile?
		wp_register_script( 'jquery', $jquery_cdn_url, array(), '3.6.0', true );
	} else {
		wp_register_script( 'jquery', $jquery_local_url, array(), '3.6.0', true );	
	}
	
	wp_enqueue_script( 'jquery' );
	
	// altri script
}

add_action( 'wp_enqueue_scripts', 'add_scripts' );

Il codice di cui sopra, da inserire in functions.php, utilizza le API HTTP di WordPress.

Torna su