it-swarm.com.de

Wordpress Jquery Konflikt mit dem Plugin

Hey Leute, danke im Voraus für eure Hilfe. Ich habe meine Nachforschungen angestellt und bin ein bisschen ratlos ...

Ich erstelle eine Wordpress-Website für einen Kunden und es wird einen E-Store geben. Ich benutze wp-E-Commerce. Alle Shopseiten werden mit einem Javascript-Fehler geladen:

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(){ 

Ich glaube, dass ich das Problem nach einem langen Google-Zeitalter als Skriptkonflikt diagnostiziert habe. Mit anderen Worten, entweder WP oder das Plug-in selbst führt eine Abfrage durch, und ich füge es auch für einige andere Dinge auf der Site hinzu. Wenn ich meinen jquery-Skriptaufruf lösche, verschwindet das Problem und der Speicher funktioniert einwandfrei. Aber ich brauche diese Frage ...

Ich habe gelesen, wie man WP enqeue verwendet, um das Problem zu beheben:

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(); 

Ich glaube, ich habe das richtig gemacht, aber es scheint nichts zu ändern.

Irgendwelche Ideen? Danke noch einmal.

BEARBEITEN:

Okay, ich habe es herausgefunden ... es war das Enqueue-Skript, das die Dinge reparierte. Ich wp (kopf); musste vor der Abmeldung und Enqueue Teil kommen. Ich muss die Dokumentation falsch gelesen haben. Folgendes habe ich meinem Header hinzugefügt:

<?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

Derzeit sind zwei Exemplare von jQuery vor Ort geladen:

  1. Im Header befindet sich jQuery, das mit WordPress gebündelt ist und wahrscheinlich von einem Plugin angefordert wird.
  2. In der Fußzeile gibt es jQuery von Google CDN, wahrscheinlich von Ihrem Code hinzugefügt?

Offensichtlich ist dies einer zu viel. Es gibt verschiedene Möglichkeiten, damit umzugehen:

  1. Wenn Sie in der Lage sind, gebündelte Kopien zu verwenden, müssen Sie Ihre Skripte registrieren/einreihen und jquery in Abhängigkeiten deklarieren, siehe Codex: wp_register_script() , $deps argument.
  2. Sie können jQuery erneut bei Google CDN registrieren. Es ist dennoch eine gute Idee, Ihr Skript als Abhängigkeit zu registrieren.

Ihr Code scheint in Ordnung zu sein, außer dass dies am Ende php wp_head();, php keinen Sinn ergibt und wp_head() call in theme sein sollte.

3
Rarst

Hierfür gibt es eine nette Lösung auf der Site dieses Typen: http://www.mogmachine.com/stop-wordpress-loading-jquery-in-wp_head/

Dies wird gelöst, indem Sie die Deregistrierungs-JQuery setzen, Ihre eigene Quelle aufrufen und die JQuery-Befehle in Ihrer functions.php in Ihrem Theme neu registrieren. Sie können Plugins und Kollisionen vermeiden, indem Sie anstelle von WPs einfach Ihre eigenen aufrufen.

Hat für mich gearbeitet.

0
Judd