Cum încarc script-ul după jQuery?

10 apr. 2012, 20:22:02
Vizualizări: 44.4K
Voturi: 14
function load_my_script(){
    // Înregistrăm script-ul nostru cu jQuery ca dependință
    wp_register_script( 'my_script', get_template_directory_uri() . '/js/myscript.js', array('jquery') );
    // Încărcăm script-ul
    wp_enqueue_script( 'my_script' );
}
add_action('wp_enqueue_scripts', 'load_my_script');

myscript.js se încarcă înainte de jQuery deoarece dependințele nu sunt setate corect. Pentru a-l face să se încarce DUPĂ jQuery, trebuie să faci două modificări:

1. Dependințele trebuie să fie un array: array('jquery')
2. Nu mai este nevoie să specifici jQuery a doua oară în wp_enqueue_script

0
Toate răspunsurile la întrebare 2
3
21

Ai o greșeală de scriere în codul tău. Ar trebui să fie:

function load_my_script(){
    wp_register_script( 
        'my_script', 
        get_template_directory_uri() . '/js/myscript.js', 
        array( 'jquery' )
    );
    wp_enqueue_script( 'my_script' );
}
add_action('wp_enqueue_scripts', 'load_my_script');

Dependența de jQuery trebuie să fie un array(), nu doar un șir de caractere. Acest lucru va forța scriptul tău să se încarce după jQuery.

10 apr. 2012 20:26:49
Comentarii

... este nevoie de 'jquery' în wp_enqueue_script?

Dave Dave
10 apr. 2012 20:41:16

În funcția wp_register_script, da. Aceasta îi spune WordPress că jQuery este necesar pentru ca acest script să ruleze, așa că va fi încărcat în consecință. În wp_enqueue_script nu este necesar, deoarece WP deja cunoaște dependențele dinainte.

swissspidy swissspidy
10 apr. 2012 20:56:01

Exact. Scuze, am uitat să elimin jQuery din apelul wp_enqueue_script(). Nu este necesar acolo.

EAMann EAMann
10 apr. 2012 20:59:44
2

get_template_directory_uri() vă oferă directorul temei, dar acesta nu este ceea ce doriți dacă utilizați un Child Theme.

get_stylesheet_directory_uri() vă va oferi directorul "temei curente", deci în orice caz, cel mai sigur este să utilizați această funcție.

18 mar. 2021 09:06:17
Comentarii

Adevărat, dar întrebarea este despre dependențele de scripturi, nu-i așa?

Rup Rup
18 mar. 2021 15:20:49

Da. Dar dacă cineva folosește un Child Theme, niciunul dintre aceste răspunsuri nu va funcționa. Deci acest lucru ajută.

aarontgrogg aarontgrogg
19 mar. 2021 16:37:14