所以我用的是http://woothemes.com/woocommerce/ 电子商务插件,它在本地注册jQuery,与我从Google CDN默认的jQuery调用冲突。
这花了很长时间,但我将问题隔离到以下几行代码中woocommerce.php
:
$suffix = defined(\'SCRIPT_DEBUG\') && SCRIPT_DEBUG ? \'\' : \'.min\';
$lightbox_en = (get_option(\'woocommerce_enable_lightbox\')==\'yes\') ? true : false;
$chosen_en = (get_option(\'woocommerce_enable_chosen\')==\'yes\') ? true : false;
$jquery_ui_en = (get_option(\'woocommerce_enable_jquery_ui\')==\'yes\') ? true : false;
$scripts_position = (get_option(\'woocommerce_scripts_position\') == \'yes\') ? true : false;
// Woocommerce.min.js is minified and contains woocommerce_plugins
wp_enqueue_script( \'woocommerce\', $this->plugin_url() . \'/assets/js/woocommerce\'.$suffix.\'.js\', array(\'jquery\'), \'1.0\', $scripts_position );
if ( defined( \'SCRIPT_DEBUG\' ) && SCRIPT_DEBUG ) {
wp_enqueue_script( \'woocommerce_plugins\', $this->plugin_url() . \'/assets/js/woocommerce_plugins\'.$suffix.\'.js\', array(\'jquery\'), \'1.0\', $scripts_position );
}
删除它们可以抵消重复的jQuery调用,这让我头痛不已。我有以下内容
functions.php
将jQuery从标头中出列,但由于某种原因,它一直存在并拒绝离开!:/知道如何从内部终止本地jQuery调用吗
functions.php
? 我的代码有问题吗?:
// dequeue jquery from header
function theme_slug_dequeue_header_jquery() {
wp_dequeue_script( \'jquery\' );
}
add_action( \'wp_header\', \'theme_slug_dequeue_header_jquery\', 11 );
SO网友:ChowKaiDeng
我也遇到了类似的问题,无意中发现了这条线索。
我的问题是WooCommerce 2.0.5是自己注册jQuery的,这破坏了我自己的jQuery脚本,与我的函数产生了冲突。php取消注册/注册/排队进程。
几次尝试后,我注意到我的函数中没有包含jQuery版本。特别添加后,问题就解决了。
这就是woocommerce/woocommerce。php(第1214行):
public function check_jquery() {
global $wp_scripts;
// Enforce minimum version of jQuery
if ( isset( $wp_scripts->registered[\'jquery\']->ver ) && $wp_scripts->registered[\'jquery\']->ver < \'1.7\' ) {
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'/wp-includes/js/jquery/jquery.js\', array(), \'1.7\' );
wp_enqueue_script( \'jquery\' );
}
}
这就是我在函数中重写它的方式。php文件
function my_scripts_method() {
wp_deregister_script( \'jquery\' );
wp_register_script(
\'jquery\',
\'http://code.jquery.com/jquery.js\',
false,
\'1.9.1\' // IMPORTANT: declare jQuery version
);
wp_enqueue_script( \'jquery\' );
}
add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
希望这可以帮助其他人:)