Assegnare la data di modifica come versione di un file incluso in WordPress
Per includere un file JavaScript o CSS nel proprio tema si possono utilizzare rispettivamente le funzioni
Se si includono librerie (come jQuery o uno dei suoi tanti plug-in) si può usare il numero di versione della release, ma per file che sono abbastanza stabili e che non hanno un numero di versione (come i file CSS e JavaScript di un tema realizzato da noi) si può usare la data di modifica del file.
Per non dover inserire a mano la funzione
Questo è un esempio di utilizzo della funzione per includere un file JavaScript che dipende da jQuery.
Questo è un esempio di utilizzo della funzione per includere un file CSS.
wp_enqueue_script
e wp_enqueue_style
. Il quarto parametro di entrambe le funzioni specifica il numero di versione del file incluso (con il valore di default FALSE
usa la versione di WordPress e con NULL
non viene specificata la versione). Il numero di versione viene appeso alla fine del percorso del file e forza i browser a non usare il file presente in cache quando cambia la versione.Se si includono librerie (come jQuery o uno dei suoi tanti plug-in) si può usare il numero di versione della release, ma per file che sono abbastanza stabili e che non hanno un numero di versione (come i file CSS e JavaScript di un tema realizzato da noi) si può usare la data di modifica del file.
Per non dover inserire a mano la funzione
filemtime
in tutti i file inclusi in un tema ho creato la funzione che potete vedere qui sotto. Il primo parametro stabilisce il tipo di file da includere ("script" per i file JavaScript e "style" per i file CSS), i parametri $handle
, $src
e $deps
riprendono quelli di wp_enqueue_script
e wp_enqueue_style
e $more_params
è un elenco di altri parametri specifici di wp_enqueue_script
(come $in_footer
) e wp_enqueue_style
(come $media
)./** * Include un file esterno al tema con la data di modifica come versione * @param string $type tipo di file (script o style) * @param string $handle nome dello script * @param string $src URL dello script * @param array $deps elenco delle dipendenze * @param array $more_params altri parametri di wp_enqueue_script e wp_enqueue_style */ function my_include_asset($type, $handle, $src = false, $deps = array(), $more_params = array()) { $ver = false; if (is_string($src) && trim($src) != '') { $theme_uri = get_theme_root_uri(); if (strpos($src, $theme_uri) === 0) { $path = get_theme_root().str_replace($theme_uri, '', $src); if (is_file($path)) { $ver = filemtime($path); } } } $params = array_merge( array($handle, $src, $deps, $ver), is_array($more_params) ? array_values($more_params) : array($more_params) ); switch (is_string($type) ? $type : null) { case 'script': $function = 'wp_enqueue_script'; break; case 'style': $function = 'wp_enqueue_style'; break; default: $function = null; break; } if ($function) { call_user_func_array($function, $params); } }
Questo è un esempio di utilizzo della funzione per includere un file JavaScript che dipende da jQuery.
my_include_asset('script', 'general-scripts', get_stylesheet_directory_uri().'/js/scripts.js', array('jquery'));
Questo è un esempio di utilizzo della funzione per includere un file CSS.
my_include_asset('style', 'general-style', get_stylesheet_directory_uri().'/style.css');
Guida scritta da Mattia il 25/06/2015.