it-swarm.com.de

Wie erzwinge ich das Laden von wp_enqueue_scripts am ENDE von <head>?

Ich lade Skripte über wp_enqueue_scripts in mein untergeordnetes Thema.

Das einzige Problem ist, dass mein style.css-Skript VOR Plugin-Skripten geladen wird, ich aber das CSS in den Plugins mit meinem style.css überschreiben muss, dh es muss NACH Plugin-Skripten geladen werden.

Ich möchte auch nicht alle meine CSS-Stile mit "! Important" versehen, da dies mühsam ist und einige meiner Stile beschädigen kann.

Ich habe versucht, eine Priorität hinzuzufügen, aber die Ladereihenfolge wurde dadurch überhaupt nicht beeinflusst.

    add_action('wp_enqueue_scripts', 'scripts', 9999);

Ich möchte einfach wp_enqueue_scripts ganz am Ende des Headers, kurz vor </ head>. Wie geht das? Vielen Dank :-)

UPDATE:

Ja, ich habe es herausgefunden!

Einfach den Filter registrieren mit:

    add_action('wp_print_styles', 'scripts');

wp_print_styles wird mit einer Priorität von 8 geladen und sie werden trotzdem in den Header eingefügt, da es ein Teil von wp_head ist.

Ich habe das herausgefunden, indem ich in wp-includes/default-filters.php gesucht habe, also danke für den Tipp! :-)

5
Nate

wp_enqueue_scripts wird standardmäßig mit der Priorität 1 zu wp_head hinzugefügt. Siehe wp-includes/default-filters.php für Details.

Sie können versuchen, die Priorität zu ändern:

remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 9999 );

Aber ich empfehle es nicht. Es gibt wahrscheinlich einen guten Grund für den Standardwert. Einige Skripte funktionieren möglicherweise nicht mehr, wenn Sie dies ändern.

5
fuxia

Ich denke, die benutzerfreundlichere Art, dies zu tun, ist die Verwendung des wp_enqueue_styles() 's $ deps-Parameters. Unter der Annahme, dass die Plug-in-Stile über wp_enqueue_styles () in die Warteschlange gestellt werden (was zugegebenermaßen nur wenige sind), listen Sie ein Array der Stylesheet-Handles auf, von denen Ihre Stile abhängen, und laden sie anschließend.

1
mrwweb