Verketten und minimieren Sie Abhängigkeiten für in die Warteschlange gestellte JavaScript-Dateien

8

Ich lade eine JavaScript-Datei mit wp_enqueue_scriptin mein Thema. Gleichzeitig lade ich jedoch auch mehrere jQuery-Dateien als Abhängigkeiten für das in die Warteschlange gestellte Skript (das bereits von Grunt verkettet und minimiert wurde). Hier ist mein Code:

add_action('wp_enqueue_scripts', function() {
    wp_enqueue_script( 'customscripts', get_template_directory_uri() . '/assets/js/main.min.js', array('jquery', 'jquery-form', 'json2', 'jquery-ui-autocomplete'), NULL, true );
});

Wie würde ich für das Abhängigkeitsarray diese jQuery-Abhängigkeiten verketten und minimieren? Ich versuche, meine Site so schnell wie möglich zu laden. Je weniger JS-Dateien geladen werden müssen, desto besser. Auch wenn es möglich wäre, sie asynchron laden zu lassen (unter Verwendung der asyncEigenschaft für <script>Tags), wäre das ein Ass.

Ich würde es lieber ohne Plugin machen, aber ich werde bei Bedarf ein Plugin verwenden.

Danke für jede Hilfe :)

Tom Oakley
quelle
3
Javascript-Dateien von Drittanbietern sollten von Plugins so wie sie sind registriert / in die Warteschlange gestellt werden. nicht verkettet, geändert oder mit einem anderen Namen. Auf diese Weise lädt Wordpress nicht mehrere Instanzen desselben Codes, wenn mehr als ein Plugin / Theme dasselbe js von Drittanbietern verwendet. Um dieses Management und diese Verkettung zu nutzen, sollte die Verkettung im laufenden Betrieb in Kombination mit einem Cache-System erfolgen, um eine Verkettung der Dateien bei jedem Besuch zu vermeiden. Ich denke, diese Arbeit ist zu viel für eine Antwort hier. Schauen Sie sich W3 Total Cache an. Dieses Plugin verkettet, minimiert, speichert das Ergebnis und lädt asynchrone JS-Dateien.
Cybmeta
Genau wie @cybmeta sagt, erledigt W3 Total Cache den Job, aber seien Sie vorsichtig, wenn Sie js-Dateien verketten. Einige Skripte sind nicht darauf vorbereitet, in denselben Dateien "zusammen" zu sein. Aber entspannen Sie sich auch, die Änderungen am W3-Gesamtcache sind alle reversibel.
Rangel R. Morais
Hey, danke für die Antwort, W3 Total Cache funktioniert ziemlich gut für die Verkettung usw., danke für den Vorschlag (und @cybmeta) :)
Tom Oakley
Hey, danke für die Antwort und sorry, ich habe vergessen zu antworten. W3 Total Cache funktioniert momentan einwandfrei, und Ihre Erklärung, warum WordPress dies nicht tut, ist absolut sinnvoll. Vielen Dank!
Tom Oakley
1
Dieses Plugin ist auch schön, wenn Sie aus irgendeinem Grund W3 Total Cache nicht wollen oder brauchen wordpress.org/plugins/autoptimize
NickFMC

Antworten:

1

W3 Total Cache bietet JS / CSS-Minimierung. Ich bin nicht mit dem Prozess vertraut, den sie verwenden, aber wenn Sie die Verwendung eines Plugins vermeiden möchten, können Sie sich den Quellcode ansehen , wie sie damit umgehen.

Eric Holmes
quelle