WPスクリプト/スタイルローダーを使用して、フロントエンドでスクリプトとスタイルを連結およびgzipできますか?


27

WPには、wp-adminに含まれる素敵なjavascriptローダーがあります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圧縮されたファイルとして提供できるため、管理者だけでなくフロントエンドでも使用できるかどうか疑問に思いました


これは、「非管理ページにエンキューを使用できますか?」..その答えは「はい」です。
t31os

5
@ t31os問題は、load-scripts.phpとload-stylesを使用して、管理者向けに行われているようなスタイルとスクリプトを連結およびgzipできるかどうかです。質問のタイトルを明確にしました。
Chris_O

回答:


12

遅い答え

簡単な外観から:

使用する必要があります

  • 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は、この動作を変更し.js、「dev」バージョンと「.min.js」で使用します(SCRIPT_DEBUGis TRUE);

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

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


私は現在、このようなことをしようとしています。悪いことは、load-scripts.phpがexit()最後にあるため、その後は何もできないことです。
ベンジャミンインタル

この答えは実際に私を大きな頭痛から救った。場合SCRIPT_DEBUGtrue、すべてのスクリプトは、多くのフロントエンドのように個別にエンキューされています。ただし、SCRIPT_DEBUGであるfalse、通過同時にスクリプトをキューに入れるようですload-scripts.php
マイケルエクルンド

@MichaelEcklundはい、この「スイッチ」定数は、単一のファイルを連結または配信します。これは、ソースマップおよび最近の開発者ツールの前の時代からです。
カイザー

6

これは非常に良い質問であり、WordPressに含めるのに最適な機能です。

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

キューに入れられたすべてのスクリプトを連結し、単一のgzip圧縮されたファイルとして提供できるため、adminだけでなくフロントエンドでも使用できるかどうか疑問に思いました。

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

これについては数年前にWP Hackersで議論があり、この拡張機能のtracチケットがありますが、これは受け入れられていますが、将来のリリースに備えています。


3

フロントエンドで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フックが必要でしたが、このフックは予想どおりに動作しないようです。)


0

ご覧になりたいスクリプトがいくつかあります。

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

2. WPミニファイ - このプラグインはミニファイをサポートしており、非常に簡単に使用できます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.