web-dev-qa-db-ja.com

できますか WP スクリプト/スタイルローダーはフロントエンドでスクリプトとスタイルを連結してgzipするために使用されますか?

WPはwp-adminに含まれているNice javascript loaderを持っています: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

そしてCSSローダー: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

アドミンだけでなくフロントエンドでも使用できるのではないかと思っていました。エンキューされたすべてのスクリプトを連結し、それらを単一のgzipファイルとして提供できるからです。

27
Alex

回答が遅い

簡単な外観から:

使用する必要があります

  • include( admin_url().'load-scripts.php' );
  • およびinclude( admin_url().'script-loader.php' );

次に、$GLOBALS['wp_scripts']にジャンプします。

つかいます…

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

…それを拡張します。

そして使用する

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

スクリプトを追加します。

注:

  1. 非圧縮スクリプトは、.dev.jsで検索されます(SCRIPT_DEBUGTRUEの場合)。
  2. $wp_stylesについても同様のことが可能です。
  3. 編集:WP 3.5は、この動作を変更し、「dev」バージョンには.jsを使用し、(SCRIPT_DEBUGTRUE)の場合は「.min.js」を使用します。

(ただし、これはプラグインまたはmuプラグインを使用する場合にのみ機能すると思います。)

これはテストされておらず、これが機能するかどうかはわかりません。

12
kaiser

これは非常に良い質問であり、WordPressに含めるべき素晴らしい機能です。

他の回答のいくつかは主な質問に対処していません。

アドミンだけでなくフロントエンドでも使用できるのではないかと思っていました。エンキューされたすべてのスクリプトを連結し、それらを単一のgzipファイルとして提供できるからです。

いいえ。フロントエンド用のCSSとスクリプトを連結するために、組み込みのスクリプトローダーを使用することは現在できません。

数年前にWP Hackersで 議論がありました そしてこの機能強化のための tracチケットがあります 受け入れられていますが、将来のリリースのために。

6
Chris_O

フロントエンドでCSSファイルをエンキューする必要がある場合

1)wp_register_style($ handle、$ src)でスタイルを登録します。2)wp_enqueue_style($ handle)をwp_print_stylesフックにフックします。

フロントエンドでスクリプトをエンキューする必要がある場合

1)wp_register_script($ handle、$ src)でスタイルを登録します。2)wp_enqueue_script($ handle)をwp_headフックにフックします。

(注:これにはwp_print_stylesフックが必要ですが、このフックはどうやら期待どおりに機能しません。)

3
Chip Bennett

私はあなたが見たいと思うかもしれないいくつかのスクリプトを持っています。

1. Combine.php - 私が実装したいくつかのテーマで、 このスクリプト 。同様の機能をサポートしており、テンプレートフォルダにドロップして比較的簡単に作業できます。

2. WP Minify - このプラグイン は縮小をサポートしており、非常に簡単に操作できます。

3. W3 Total Cache - は非常に強力なパフォーマンスプラグインです。それはまたスクリプト/ CSSの組み合わせだけでなく、他の多数の機能をサポートしています。結合したスクリプトをCDNにオフロードします。

0
Scott