Metodo Corretto per Eseguire Script con Dipendenze senza Enqueue
Con enqueue dovresti cambiare $deps
con il tuo script o un array di script necessari per far funzionare il tuo script.
<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>
Per esempio:
function script_that_requires_jquery() {
wp_register_script( 'script-with-dependency', 'http://www.example.com/script-with-dependency.js', array( 'jquery' ), '1.0.0', true );
wp_enqueue_script( 'script-with-dependency' );
}
add_action( 'wp_enqueue_scripts', 'script_that_requires_jquery' );
Di solito faccio così ma non sempre sembra funzionare:
function script_that_requires_jquery(){
if ( wp_script_is( 'jquery', 'done' ) ) { ?>
<script type="text/javascript">
(function($) {
// funzione jquery va qui
})( jQuery );
</script>
<?php }
}
add_action('wp_footer', 'script_that_requires_jquery');
Forse è questo?
function script_that_requires_jquery(){
wp_enqueue_script( 'jquery' );
?>
<script type="text/javascript">
(function($) {
// funzione jquery va qui
})( jQuery );
</script>
<?php
}
add_action('wp_footer', 'script_that_requires_jquery');

function script_that_requires_jquery() {
wp_register_script( 'script-with-dependency', 'http://www.example.com/script-with-dependency.js', array( 'jquery' ), '1.0.0', true );
wp_enqueue_script( 'script-with-dependency' );
}
add_action( 'wp_enqueue_scripts', 'script_that_requires_jquery' );
Questo è il metodo corretto per accodare gli script (e gli stili). Dovresti sempre utilizzare wp_enqueue_scripts
per agganciare script e stili.
Ci sono alcune cose da verificare quando registri script e stili. Innanzitutto, assicurati che l'ordine in cui li inserisci nella tua funzione sia corretto. Il primo script nella funzione verrà eseguito per primo, il secondo dopo e così via. Quindi, non puoi posizionare il tuo script dipendente da jQuery prima di jQuery, non funzionerà.
L'altra potenziale trappola qui è add_action( $hook, $function_to_add, $priority, $accepted_args );
. Senza impostare il parametro $priority
, c'è sempre il rischio che il tuo script/stile venga caricato prima di altri script/stili che potrebbero sovrascriverlo.
Nel tuo caso, il tuo script potrebbe essere caricato prima di jQuery, quindi non funzionerà. Io sempre imposto questo parametro con una priorità molto bassa (numero molto alto) quando aggiungo script e stili personalizzati. Questo garantisce che i miei script e stili vengano caricati per ultimi. Quindi farò qualcosa come questo
add_action( 'wp_enqueue_scripts', 'script_that_requires_jquery', 999 );
