我能够在整个控制台上注册和排队我自己的jquery-ui插件下载。由于某种原因,我无法使用相同的方法加载jquery-ui-core。
控制台还抱怨我的$不是$(document).ready(function)初始jquery包装器的函数。即使wp在内核中构建了自己的jquery版本,我也明白了。
搜索文档表明,wp还包含大量的jquery-ui脚本。所以我走了那条路,但他们没有使用他们的手柄。
我做错了什么?
wp_enqueue_script('jquery-core');
//wp_register_script( 'jquery-core', get_template_directory_uri() . '/js/jquery.ui.core.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-core');
//wp_register_script( 'jquery-draggable', get_template_directory_uri() . '/js/jquery.ui.draggable.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-draggable');
//wp_register_script( 'jquery-droppable', get_template_directory_uri() . '/js/jquery.ui.droppable.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-droppable');
// wp_register_script( 'jquery-mouse', get_template_directory_uri() . '/js/jquery.ui.mouse.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-mouse');
// wp_register_script( 'jquery-sortable', get_template_directory_uri() . '/js/jquery.ui.sortable.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-sortable');
//wp_register_script( 'jquery-widget', get_template_directory_uri() . '/js/jquery.ui.widget.min.js', array( 'jquery' ));
wp_enqueue_script('jquery-ui-widget');
目前我的register_script函数调用注释掉了,当我添加enqueue_script以通过其句柄调用它时,确实有效,但是控制台让我误解了这些文件(从jquery-ui下载)我认为它的bc jquery是没有被识别,因此关于$未被定义的错误。
如果我首先使用wp_register_script调用脚本,它实际上会加载,但会抛出许多指向jquery-ui库的控制台错误。最后,最后一个错误实际上是我的代码说$(...)。accordion();不是一个功能。我从jquery-ui演示中提取了这段代码。我可以在jsfiddle中对我的jquery-ui构建进行单元测试,这一切都很有效。我没有在那里手动调用jquery-ui库,因为他们有一个下拉列表来选择它,但我输入了html和js演示代码。
有什么想法吗?
答案 0 :(得分:1)
关于$未定义的错误是因为在WP中没有冲突模式加载jQuery。
替换:
$(document).ready(function(){
使用:
jQuery(document).ready(function($){
另外,只是为了确保这里的PHP是一个带有enqueue脚本钩子的函数。
function wpse_load_js() {
wp_enqueue_script('jquery-ui-core');
wp_enqueue_script('jquery-ui-draggable');
wp_enqueue_script('jquery-ui-droppable');
wp_enqueue_script('jquery-ui-mouse');
wp_enqueue_script('jquery-ui-sortable');
wp_enqueue_script('jquery-ui-widget');
}
add_action( 'wp_enqueue_scripts', 'wpse_load_js' );