Hé les gars, merci d'avance pour votre aide. J'ai fait mes recherches et je suis un peu perplexe avec ça ...
Je construis un site Web Wordpress pour un client et il va avoir un magasin en ligne. J'utilise wp-ecommerce. Toutes les pages du magasin se chargent avec une erreur 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(){
Après une longue période de recherche sur Google, je pense avoir diagnostiqué le problème comme un conflit de script. En d'autres termes, soit WP, soit le plugin lui-même est en train de servir jquery, et je l'inclue également pour d'autres éléments sur le site. Lorsque je supprime mon appel de script jQuery, le problème disparaît et le magasin fonctionne correctement. Mais j'ai besoin de ça jquery ...
J'ai lu sur l'utilisation de WP enqeue pour résoudre le problème:
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();
Je crois que j'ai bien fait, mais ne semble rien réparer.
Des idées? Merci encore.
Bon, j'ai compris ... c'était le script de mise en file d'attente qui corrigeait les choses. Je wp (tête); devait venir avant la partie de désenregistrement et de mise en file d'attente. Je dois avoir mal lu la documentation. Voici ce que j'ai ajouté à mon en-tête:
<?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');
?>
Il existe actuellement deux copies de jQuery chargées sur le site:
Évidemment c'est un de trop. Il y a deux façons de le gérer:
jquery
dans les dépendances. Voir Codex: wp_register_script()
, argument $deps
.Votre code semble bien sauf que ceci à la fin de php wp_head();
, php
n'a aucun sens, et l'appel de wp_head()
devrait être dans le thème.
Il y a une bonne solution à cela sur le site de ce mec: http://www.mogmachine.com/stop-wordpress-loading-jquery-in-wp_head/
Ce qui est résolu en mettant le désenregistrement de jquery, appelez votre propre source, réenregistrez les commandes jquery dans votre functions.php dans votre thème. Vous pouvez éviter les plugins et les collisions en appelant simplement le vôtre au lieu de celui de WP.
Travaillé pour moi.