web-dev-qa-db-de.com

Könnte das WP Skript/Style Loader verwendet werden, um Skripte und Stile im Front-End zu verketten und zu gzipen?

WP hat einen netten Javascript-Lader 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 eingereihten Skripte verketten und sie als einzelne gezippte Datei bereitstellen können

27
Alex

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 springen Sie in $GLOBALS['wp_scripts']:

Benutzen…

$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. Nicht komprimierte Skripte werden nach .dev.js durchsucht (wenn SCRIPT_DEBUGTRUE ist).
  2. Gleiches scheint für $wp_styles möglich zu sein.
  3. EDIT: WP 3.5 ändert dieses Verhalten und verwendet .js für "dev" -Versionen und ".min.js", wenn (SCRIPT_DEBUGTRUE ist);

(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.

12
kaiser

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 eingereihten Skripts verketten und als einzelne komprimierte 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 ein paar Jahren gab es eine Diskussion darüber auf WP Hackers und es gibt ein Trac-Ticket für diese Verbesserung , das akzeptiert wurde, aber für eine zukünftige Veröffentlichung.

6
Chris_O

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 am Frontend in die Warteschlange stellen 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 Haken wp_print_styles dafür erwartet, aber dieser Haken funktioniert anscheinend nicht wie erwartet.)

3
Chip Bennett

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

1. Combine.php - Bei 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 handhaben.

3. W3 Total Cache - ist ein sehr leistungsfähiges Leistungs-Plugin. Es unterstützt auch eine Skript/CSS-Kombination sowie eine große Anzahl anderer Funktionen, z. Ausladen der kombinierten Skripte auf eine CDN.

0
Scott