How do I force wp_enqueue_scripts to load at the END of <head>?
Încarc scripturile prin wp_enqueue_scripts
în tema mea child.
Singura problemă este că scriptul meu style.css
se încarcă ÎNAINTE de scripturile plugin-urilor, dar eu trebuie să suprascriu CSS-ul din plugin-uri cu style.css-ul meu. Deci trebuie să se încarce DUPĂ scripturile plugin-urilor.
Nu vreau să adaug "!important" la toate stilurile mele CSS pentru că ar fi obositor și ar putea strica o parte din stilizarea mea.
Am încercat să adaug o prioritate dar nu a afectat deloc ordinea de încărcare.
add_action('wp_enqueue_scripts', 'scripts', 9999);
Aș vrea pur și simplu ca wp_enqueue_scripts
să se încarce chiar la sfârșitul header-ului, chiar înainte de </head>
. Cum se poate face? Mulțumesc :-)
UPDATE:
Am reușit să rezolv!
Pur și simplu înregistrează filtrul cu:
add_action('wp_print_styles', 'scripts');
wp_print_styles
se încarcă cu o prioritate de 8, și tot le plasează în header pentru că face parte din wp_head
.
Am descoperit asta uitându-mă în wp-includes/default-filters.php, deci mulțumesc pentru pont! :-)
wp_enqueue_scripts
este adăugat implicit cu o prioritate de 1
la wp_head
. Consultați wp-includes/default-filters.php
pentru detalii.
Puteți încerca să schimbați prioritatea:
remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 9999 );
Dar nu recomand acest lucru. Există probabil un motiv bun pentru valoarea implicită. Unele scripturi pot să nu mai funcționeze dacă modificați această valoare.

Cred că o metodă mai prietenoasă cu WordPress pentru a face asta este să folosești parametrul $deps al funcției wp_enqueue_styles()
. Presupunând că stilurile plugin-ului sunt încărcate prin wp_enqueue_styles() (ceea ce, din păcate, foarte puține fac), poți specifica un array cu identificatorii fișierelor de stil de care depind stilurile tale, astfel încât acestea să se încarce ulterior.
