Könnte der WP Script / Style Loader verwendet werden, um Scripts und Styles im Front-End zu verketten und zu gzipen?

27

WP hat einen netten Javascript-Loader in wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

und ein CSS-Ladeprogramm: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

Ich habe mich gefragt, ob es möglich ist, sie auch im Front-End zu verwenden, nicht nur im Admin-Bereich, da sie alle in die Warteschlange gestellten Skripte verketten und als einzelne gezippte Datei bereitstellen können

Alex
quelle
Ist das nicht effektiv nur die Frage "Kann ich Warteschlangen für Nicht-Admin-Seiten verwenden?" .. Die Antwort darauf wäre ja.
23.
5
@ t31os Die Frage ist, ob Sie load-scripts.php und load-styles verwenden können, um die Stile und Skripte wie für den Administrator zu verketten und zu gzipen . Ich habe den Titel der Frage geklärt.
Chris_O

Antworten:

12

späte Antwort

Aus einem kurzen Blick:

Sie müssten verwenden

  • include( admin_url().'load-scripts.php' );
  • und include( admin_url().'script-loader.php' );

Dann springe hinein $GLOBALS['wp_scripts'] :

Verwenden…

$wp_scripts->default_dirs( array_merge( 
     $wp_scripts->default_dirs
    ,array( '/themes/your_theme/js/' ) 
); 

… Um es zu erweitern.

Und dann benutzen

$wp_scripts->add( $handle, $path_from_content_dir, false/array( $deps ), $ver ) 

ein Skript hinzufügen.

Anmerkungen:

  1. Unkomprimierte Skripte werden nach .dev.js(wann SCRIPT_DEBUGist TRUE) durchsucht .
  2. Gleiches scheint möglich zu sein $wp_styles.
  3. BEARBEITEN: WP 3.5 wird dieses Verhalten ändern und .jsfür "dev" -Versionen und ".min.js" verwenden, wenn ( SCRIPT_DEBUGist TRUE);

(Aber ich denke, das funktioniert nur, wenn Sie ein Plugin oder ein Mu-Plugin verwenden.)

Es ist nicht getestet und ich bin nicht sicher, ob das funktionieren wird.

Kaiser
quelle
Ich versuche gerade, so etwas zu machen. Schlimm ist, dass load-scripts.php exit()am Ende eine hat, so dass Sie danach nichts mehr tun können.
Benjamin Intal
Diese Antwort bewahrte mich vor massiven Kopfschmerzen. Wenn SCRIPT_DEBUGist true, werden alle Skripte individuell ähnlich wie im Frontend der Warteschlange eingereiht. Wenn jedoch SCRIPT_DEBUGist false, so scheint es , die Skripte gleichzeitig durch einzureihen load-scripts.php.
Michael Ecklund
@MichaelEcklund Ja, dieser "Schalter" verkettet oder liefert einzelne Dateien. Dies ist aus der Zeit vor Quellkarten und heutzutage Entwicklertools.
Kaiser
6

Dies ist eine sehr gute Frage und wäre eine großartige Funktion für WordPress.

Einige der anderen Antworten befassen sich nicht mit der Hauptfrage.

Ich habe mich gefragt, ob es möglich ist, sie auch im Front-End zu verwenden, nicht nur im Admin-Bereich, da sie alle in die Warteschlange gestellten Skripte verketten und als einzelne gezippte Datei bereitstellen können.

Nein, es ist derzeit nicht möglich, den eingebauten Skriptlader zum Verketten von CSS und Skripten für das Front-End zu verwenden.

Vor einigen Jahren gab es auf WP Hackers eine Diskussion darüber und es gibt ein Trac-Ticket für diese Verbesserung , das akzeptiert wurde, aber für eine zukünftige Veröffentlichung.

Chris_O
quelle
3

Wenn Sie eine CSS-Datei im Frontend in die Warteschlange stellen müssen:

1) Registrieren Sie den Style über wp_register_style ($ handle, $ src). 2) Hängen Sie wp_enqueue_style ($ handle) in den Hook wp_print_styles ein.

Wenn Sie ein Skript im Front-End einreihen müssen:

1) Registrieren Sie den Style über wp_register_script ($ handle, $ src). 2) Hängen Sie wp_enqueue_script ($ handle) in den wp_head-Hook ein.

(Hinweis: Ich hätte den wp_print_styles-Hook dafür erwartet, aber dieser Hook funktioniert anscheinend nicht wie erwartet.)

Chip Bennett
quelle
0

Ich habe ein paar Skripte, die Sie sich vielleicht ansehen möchten.

1. Combine.php - Auf einigen meiner Themes habe ich dieses Skript implementiert . Es unterstützt ähnliche Funktionen und kann relativ einfach in Ihrem Vorlagenordner abgelegt und bearbeitet werden.

2. WP Minify - Dieses Plugin unterstützt das Minimieren und ist sehr einfach zu bedienen.

3. W3 Total Cache - ist ein sehr leistungsfähiges Leistungs-Plugin. Es unterstützt auch die Kombination von Skripten und CSS sowie eine Vielzahl anderer Funktionen, z. B. das Laden der kombinierten Skripten auf einen CDN.

Scott
quelle