您好,我刚刚学习了如何将jQuery添加到wordpress主题,它可以工作,但wordpress开发工具中不断出现错误。以下是我发布的代码:
function register_js(){
if(!is_admin()){
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\' , \'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js\');
wp_register_script(\'quicksand\', get_template_directory_uri() . \'/js/quicksand.js\', \'jquery\');
wp_register_script(\'easing\', get_template_directory_uri() . \'/js/easing.js\', \'jquery\');
wp_register_script(\'custom\', get_template_directory_uri() . \'/js/main.js\', \'jquery\', \'1.0\', TRUE);
wp_register_script(\'prettyPhoto\', get_template_directory_uri() . \'/js/jquery.prettyPhoto.js\', \'jquery\');
wp_enqueue_script(\'jquery\');
wp_enqueue_script(\'quicksand\');
wp_enqueue_script(\'prettyPhoto\');
wp_enqueue_script(\'easing\');
wp_enqueue_script(\'custom\');
}
}
add_action(\'wp_enqueue_scripts\', \'register_js\');
这不是我用来获取错误$,jQuery没有定义。为了解决主js文件中的$问题,我使用了以下方法:
jQuery(document).ready(function($) {})
现在我只收到以下错误:
Error: ReferenceError: jQuery is not defined
Source File: http://localhost/wordpress/wp-content/themes/01MyWork/js/quicksand.js
Line: 307
Error: ReferenceError: jQuery is not defined
Source File: http://localhost/wordpress/wp-content/themes/01MyWork/js/easing.js
Line: 39
Error: ReferenceError: jQuery is not defined
Source File: http://localhost/wordpress/wp-content/themes/01MyWork/js/main.js
Line: 2
脚本似乎正常工作唯一的问题是,我加载的每个脚本都会引发此错误。我如何解决这个问题?
最合适的回答,由SO网友:Chip Bennett 整理而成
你的主要问题是de-registering core jQuery. 不要那样做。曾经时期如果去掉了它,其他脚本将正常工作。只需这样做:
function wpse62373_register_js() {
if ( ! is_admin() ) {
wp_enqueue_script(\'quicksand\', get_template_directory_uri() . \'/js/quicksand.js\', array( \'jquery\' ) );
wp_enqueue_script(\'easing\', get_template_directory_uri() . \'/js/easing.js\', array( \'jquery\' ) );
wp_enqueue_script(\'custom\', get_template_directory_uri() . \'/js/main.js\', array( \'jquery\' ), \'1.0\', TRUE);
wp_enqueue_script(\'prettyPhoto\', get_template_directory_uri() . \'/js/jquery.prettyPhoto.js\', array( \'jquery\' ) );
}
}
add_action( \'wp_enqueue_scripts\', \'wpse62373_register_js\' );
有很多方法可以正确地替换核心WordPress脚本,但我不会通过提供答案来促进错误的实践,例如替换核心WordPress脚本。