it-swarm-ja.com

Wordpress Jqueryとプラグインの競合

こんにちは、あなたの助けを事前に感謝します。私は私の研究をしました、そして、私はこれに少し困惑しています...

私はクライアントのためにWordpressのウェブサイトを構築しています、そしてそれは電子ストアを持つことになるでしょう。私はwp-eコマースを使っています。すべてのストアページがJavaScriptエラーで読み込まれています。

http://www.thecollectiveclothingco.com/products-page/t-shirts/

jQuery("form.product_form").livequery is not a function
[Break On This Error] jQuery("form.product_form").livequery(function(){ 

ある程度のグーグル時代を経て、私はこの問題をスクリプトの矛盾として診断したと思います。言い換えれば、WPかプラグイン自身がjqueryを提供しています、そして私はそれをサイト上の他の何かのためにも含みます。 jqueryスクリプト呼び出しを削除すると、問題は解消され、ストアは正常に機能します。しかし、私はそのjqueryが必要です...

この問題を解決するためにWP enqeueを使用することについて読みました。

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

私はこれを正しく行ったと思いますが、何も修正していないようです。

何か案は?再度、感謝します。

編集:

さて、私はそれを考え出した...それは物事を修正したエンキュースクリプトでした。 wp(head);登録解除の前に来て、一部をエンキューしなければなりませんでした。私は文書を間違って読んだにちがいありません。これがヘッダに追加したものです。

<?php
wp_head();
wp_deregister_script('jquery');
wp_enqueue_script('jquery', MYURL .'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js', FALSE, '1.4.4');
 ?>
1
Redlist

現在サイトにロードされているjQueryの2つのコピーがあります。

  1. ヘッダーにはWordPressに同梱されているjQueryがあり、おそらくいくつかのプラグインから要求されています。
  2. フッターには、Google CDNのjQueryがあります。

明らかにこれは多すぎます。それを処理する方法は2つあります。

  1. バンドルコピーの使用に問題がなければ、スクリプトを登録/エンキューし、依存関係でjqueryを宣言する必要があります。Codex: wp_register_script()$deps引数を参照してください。
  2. JQueryをGoogle CDNに再登録することもできますが、それを依存関係としてスクリプトに登録することをお勧めします。

最後のphp wp_head();を除いてあなたのコードは問題ないように思われます、phpは意味をなさない、そしてwp_head()呼び出しはテーマの中にあるべきです。

3
Rarst

この男のサイトでこれに対するいい解決策があります: http://www.mogmachine.com/stop-wordpress-loading-jquery-in-wp_head/

これは、登録解除jqueryを配置し、独自のソースを呼び出し、jqueryコマンドをテーマのfunctions.phpに再登録することで解決されます。 WPの代わりに自分のものを呼び出すだけで、プラグインや衝突を避けることができます。

私のために働きました。

0
Judd