WordPress: la classe WP_Scripts

All'interno del core di WordPress, nella directory wp-includes, si trova il file class.wp-scripts.php che contiene la classe WP_Scripts. Questa classe, che accompagna WordPress sin dagli esordi, è il motore che permette l'inclusione degli script JavaScript sia nel backend che nel frontend di un sito. Vediamola più in dettaglio.

Questa classe svolge vari compiti:

  1. localizzazione degli script in base all'URL
  2. inclusione degli script tramite output HTML
  3. organizzazione degli script in base alle dipendenze
  4. posizionamento degli script nel footer o nell'header
  5. caricamento degli script predefiniti di WordPress

Si parte con il metodo WP_Scripts::print_extra_script() che gestisce gli script:


function print_extra_script( $handle, $echo = true ) {
		if ( !$output = $this->get_data( $handle, 'data' ) )
			return;

		if ( !$echo )
			return $output;

		echo "<script type='text/javascript'>\n"; // CDATA and type='text/javascript' is not needed for HTML 5
		echo "/* <![CDATA[ */\n";
		echo "$output\n";
		echo "/* ]]> */\n";
		echo "</script>\n";

		return true;
}

Questo metodo scrive un tag script con il relativo contenuto (se presente) e restituisce un valore Booleano per notificare l'avvenuta scrittura del tag. In alternativa, se l'output è assente si interrompe subito. Può anche non restituire un output ma limitarsi a memorizzare la stringa HTML.

Il secondo metodo significativo, WP_Scripts::do_item() è molto più complesso del precedente e necessita di maggiore attenzione. Sostanzialmente, le sue azioni sono:

  1. aggiunge uno script alla coda di script memorizzata nell'array WP_Scripts::in_footer
  2. gestisce la versione degli script
  3. verifica l'URL degli script
  4. scrive il contenuto HTML utilizzando sia il metodo WP_Scripts::print_extra_script() che impostando la proprietà WP_Scripts::print_html sulla stringa contenente lo script

WP_Scripts::set_group() e WP_Scripts::all_deps() gestiscono materialmente la dipendenza di uno script da un altro. La classe si conclude con i metodi WP_Scripts::do_head_items() e WP_Scripts::do_footer_items() che inseriscono rispettivamente gli script nell'header e nel footer delle pagine.

Torna su