2011-03-12 10 views
0

(ワードプレス機能)wp_enqueue_scriptを使用して複数のJQueryスクリプトを呼び出そうとしています。 JQueryへの呼び出しは完全に機能しますが、cufonへの2回目の呼び出しは正しく動作しません。私はPHPやjavascriptのエキスパートではありません - 誰かが手を貸すことができる、これのためのベストプラクティスの方法はありますか?複数のjavascriptへの呼び出しを組み合わせる

function my_init_method() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); 
     wp_enqueue_script('jquery'); 
    } 
}  

add_action('init', 'my_init_method'); 

function my_init_method2() { 
    if (!is_admin()) { 
     wp_deregister_script('cufon'); 
     wp_register_script('cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js'); 
     wp_enqueue_script('cufon'); 
    } 
}  

add_action('init', 'my_init_method2'); 
+0

詳細が必要です。 「2番目の通話は機能しません」という意味はどうですか?どのような方法でそれは失敗ですか? cufonスクリプトのURLは有効ですか(通常のWebページのようにロードしてみてください)?ブラウザのコンソールにエラーメッセージがありますか?問題を示すページへのリンクはどうですか? –

+0

本当に2 jsフレームワークが必要ですか? – yoda

答えて

1

deregister_scriptするための方法およびenqueue_scriptの私の選択は、(あなたのニーズに合わせて調整して自由に感じる)続いているよう:

function my_deregister_javascript() { 
    wp_deregister_script ('jquery-ui-tabs'); 
    wp_deregister_script ('jquery-ui-core'); 
    wp_deregister_script ('jquery-cycle'); 
    wp_deregister_script ('hoverintent'); 
    wp_deregister_script ('superfish'); 
    wp_deregister_script ('jquery-validate'); 
    wp_deregister_script ('arras_add_header_js'); 
    wp_deregister_script ('arras_add_slideshow_js'); 
    wp_deregister_script ('ratings_scripts'); 
    wp_deregister_script ('wp-postratings'); 
    wp_deregister_script ('sharing-js'); 
    wp_deregister_script ('jquery'); 
    wp_enqueue_script ('jquery', '/js/mymusicplug.js', '', '1.4.4'); 
} 
if (!is_admin()) { 
add_action('wp_print_scripts', 'my_deregister_javascript', 100); 
} 

ご覧のとおり、私の「(!is_adminは())が」に相対的ですスクリプトの出力。 wp_register_scriptを使ってスクリプトを登録すると、完全なメルトダウンが発生します。その後、結合/縮小されたJSが入っているスクリプトファイルをエンキューします。これは間違いなく動作し、結果は143,000+ bのJSファイルになります。私は、それがJSファイルのかなりのタグのように思えるかもしれませんが、WPを'register_script 'で結合するようなものを単純化すると、ローカルと外部のJSに対する30以上のHTTP要求でページが縮小されました。私のページ上の最も重いJSは今、フッターのアナリティクスとAdSenseコードを含んでいます。それでも、私は約10-15回のリクエストにしかなりません。

グレートヒント:CSSも1つのCSSファイル、1つのJSファイルを結合すると、あなたのページが飛ぶ!

これが役に立った。

+0

おかげで、これはとても役に立ちました。私がすべてのスクリプトを正しく待ち行列に入れようとしていた理由は、JS&CSSスクリプトオプティマイザプラグインを実装して、手動ですべてのファイルを結合する必要がないからです。私をしばらく取りましたが、私はそこに着いた! – toomanyairmiles

0

私はあなたがここに探しているものを正確にはわかりませんが、あなたはあなたの2つのinit文を組み合わせることで、物事を単純化することができように見える

function my_init_method() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); 
     wp_enqueue_script('jquery'); 
     wp_deregister_script('cufon'); 
     wp_register_script('cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js'); 
     wp_enqueue_script('cufon'); 
    } 
}  

add_action('init', 'my_init_method'); 

また、あなたはhttp://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.jsファイルが存在することを確認する必要がありますあなたのブラウザからアクセスできます。

+0

ありがとうございました。私は、登録解除機能を誤解していたことが判明しました。これは、wordpressに含まれているスクリプトにのみ必要でした.- cufonはスクリプトの読み込みを妨げていませんでした。ご協力いただきありがとうございます! – toomanyairmiles

関連する問題