Asynchrones JavaScript und CSS für WordPress

Ich versuche, JS und CSS asynchron ohne Plugins zu machen (ich weiß, das ist möglich, ohne viel zu programmieren).

Da ich Php nicht wirklich kenne, möchte ich, dass du mir hier ein wenig hilfst.

Ich habe diesen Code gefunden, um mit dieser Art von Dingen umzugehen, aber ich verstehe nicht wirklich, wie man es benutzt.

function add_async_attribute($tag, $handle) { $scripts_to_async = array('my-js-handle', 'another-handle'); foreach($scripts_to_async as $async_script) { if ($async_script !== $handle) return $tag; return str_replace(' src', ' async="async" src', $tag); } return $tag; } add_filter('script_loader_tag', 'add_async_attribute', 10, 2); 

Was sollte ich genau anstelle von my-js-handle oder another-handle wenn JQuery-Datei hier platziert: wordpress/wp-includes/js/jquery/jquery.js?ver=1.11.3 ?

Außerdem, wenn ich das Array vergrößern werde, sagen Sie so:

 array('my-js-handle', 'another-handle', 'one-more'); 

Würde ich etwas ändern müssen, sagen Sie dies (am Ende von add_filter ): 10, 2); ?

Und was die CSS-Asynchronisierung angeht … würde es ausreichen, dieses Array einfach zu vergrößern und meine CSS-Adresse hinzuzufügen?

Solutions Collecting From Web of "Asynchrones JavaScript und CSS für WordPress"

Sie würden das handle Ihrer eingereihten Skripte verwenden, dh den ersten Parameter der wp_enqueue_script function, die in WordPress für alle Ihre Skripte verwendet wird … (Wenn Sie sie anders laden, sollten Sie stattdessen diese function verwenden.)

Der Handle für jQuery ist … jquery eigentlich jquery-core jetzt. Jedes in die Warteschlange eingereihte Skript hat jedoch ein eigenes Handle. Ein bisschen wie ein “Slug” für einen Post.

Es ist in Ordnung, dem Array so viele Handles hinzuzufügen, ohne die Filterparameter ändern zu müssen. (Die 10, 2 Teile sind die Filterlaufpriorität bzw. die Anzahl der Argumente, die an die Filterfunktion übergeben werden.)

Aber der script_loader_tag filtert enqueued Skripte, nicht Stylesheets, also ist das nicht gut für das gleiche mit CSS-Dateien.

EDIT Ich glaube nicht, dass diese Schleife so funktionieren wird, wie sie ist, da sie beim ersten Fehler zurückkehrt und somit nicht alle Handles überprüft. Benutze stattdessen:

 foreach($scripts_to_async as $async_script) { if ($async_script === $handle) {return str_replace(' src', ' async="async" src', $tag);} }