Forțează încărcarea unui script pentru a fi primul în ordinea de importanță

13 iun. 2012, 11:38:48
Vizualizări: 28.7K
Voturi: 9

Am câteva scripturi care sunt înregistrate pentru încărcare (enqueued),

problema este că vreau să forțez ordinea de importanță în care sunt încărcate aceste scripturi. Există unul în particular care este încărcat dintr-un plugin înaintea celor din temă și care necesită jQuery, dar pluginul nu include jQuery ca dependință (programare defectuoasă din partea dezvoltatorului pluginului, dar prefer să nu modific cod terț pentru compatibilitate viitoare)

există vreo modalitate de a modifica ordinea de încărcare (enqueue) în timpul execuției?

Mulțumesc mult

0
Toate răspunsurile la întrebare 2
3
16

Trebuie doar să încărcați scripturile înainte ca pluginul să o facă. Puteți realiza acest lucru setând prioritatea la 0 pentru hook-ul dumneavoastră. De exemplu, faceți următoarele:

add_filter( 'wp_enqueue_scripts', 'wpse8170_enqueue_my_scripts', 0 );
// sau dacă încărcați scripturile pe acțiunea init
// add_action( 'init', 'wpse8170_enqueue_my_scripts', 0 );

function wpse8170_enqueue_my_scripts() {
    wp_enqueue_script( 'myscript', 'http://path/to/my/script.js', array( 'jquery' ) );
    // alte scripturi ale mele pot fi adăugate aici...
}

Setarea priorității pentru hook-uri va plasa acțiunea la începutul cozii de apel, astfel încât scripturile dumneavoastră vor fi adăugate primele.

13 iun. 2012 11:48:22
Comentarii

scuze că întreb naiv, dar presupun că wpse8170_enqueue_my_scripts_on_init este o funcție personalizată cu un apel standard enqueue_scripts în ea?

Alex Alex
13 iun. 2012 11:51:21

@Alex am actualizat răspunsul meu, verifică-l.

Eugene Manuilov Eugene Manuilov
13 iun. 2012 12:01:29

Aceasta nu funcționează întotdeauna: http://wordpress.stackexchange.com/questions/91961/hook-wp-enqueue-scripts-priority-has-no-effect

Dave Kiss Dave Kiss
23 mai 2013 19:44:06
0

Pentru a adăuga un script înaintea altor scripturi, folosește wp_register_script() în loc de wp_enqueue_script(), apoi adaugă manual scriptul tău să fie primul în coadă:

wp_register_script('handle', get_template_directory_uri()."/custom.js");
array_unshift(wp_scripts()->queue, 'handle');
4 dec. 2019 19:32:38